excel không nhận add ins

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

thenguyen007

Thành viên mới
Tham gia
6/8/10
Bài viết
28
Được thích
2
Chào các anh chị. Em có viết 1 code vba để làm add ins. Và đang dùng. tự nhiên hôm nay mở lên thì excel thông báo không tìm thấy file add ins. Em không biết bị lỗi gì. Xin được hướng dẫn;
 
Bạn gửi thông báo lên xem nào?
 
Tôi cũng gặp tình trạng này giống như bạn. Cũng mới phát sinh khoản 1 tháng, tôi dùng office 2016 sau đó gỡ ra cài đặt lại office thì lại hết nhưng sau đó một số file có code vba thì không mở được nữa bị báo lỗi . Nhưng file đó mở trên điện thoại xem bằng 365 thì vẫn mở được. Rồi win tự động update gì gì đó qua mấy lần tự update thì nó quay lại lỗi addin ban đầu. Tôi đành chấp nhận mỗi lần mở file excel thì phải chọn lại addin. Từ đó tôi đoán là hình như hệ thống update office để chặn các addin hay sao đó.
 
File xcel mình viết code mở vẫn lên vẫn hoạt động, khi xuất ra thành add ins, rồi nhúng vào thì nó không tìm thấy
 
Lỗi này là do đường dẫn Add-in cài trước đó không còn tồn tại, Excel không xóa đi thiết lập này.
Hoặc Add-in tồn tại nhưng nhận diện đường dẫn bị sai.
Chớ trót dại đi cài lại Office, tốn kém, mất thời gian.

Bạn chép mã dưới đây vào một Module và nhấn F5 để thêm path add-in nếu tồn tại và xóa nếu không tồn tại trong registry để fix lỗi này
Mã này an toàn, không xóa value của tệp đang tồn tại, không làm ảnh hưởng registry.


JavaScript:
Option Explicit
Option Compare Text
Sub fixAddinPathInRegistry()
  Const HKEY_CURRENT_USER As Long = &H80000001
  Dim objRegistry As Object
  Dim strComputer As String
  Dim rPath As String, s$, s1$, s2$
  Dim arrEntryNames(), arrValueTypes(), arrSubkeys()
  Dim strAsk, addin, APPDATA$, p$
  Dim FSO As Object, a, i, i2, v, root As Long
  Set FSO = CreateObject("Scripting.FileSystemObject")

  On Error Resume Next
  strComputer = ".": root = HKEY_CURRENT_USER
  Set objRegistry = Interaction.GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
  strComputer & "\root\default:StdRegProv")

  For Each i In Array("12.0", "14.0", "15.0", "16.0")
    GoSub p1: GoSub p
    GoSub p2: GoSub p
    GoSub p3: GoSub o
  Next
  APPDATA = Environ("APPDATA") & "\Microsoft\Addins"
  i = Application.Version: GoSub p1
    
  For Each i In Application.AddIns
    If i.Installed Then
      p = i.FullName: s1 = i.Name
      If FSO.FileExists(p) Then
        s2 = s2 & IIf(s2 = "", "", vbLf) & "     " & p
        If i.Path = APPDATA Then
          objRegistry.setStringValue root, rPath, s1, ""
        Else
          objRegistry.setStringValue root, rPath, p, ""
        End If
      Else
        s = s & IIf(s = "", "", vbLf) & "     " & p
        objRegistry.DeleteValue root, rPath, s1
        objRegistry.DeleteValue root, rPath, p
      End If
    End If
  Next
E:
  MsgBox IIf(s = "", _
            "Hoan thanh!" & vbNewLine & _
                  "Khong tim thay Path can xoa!", _
             "  Da xoa các Path:" & _
                s) & vbNewLine & vbNewLine & _
        IIf(s2 = "", "Khong tim thay Path can fix!", _
            "  Da fix các Path:" & _
                s2), Title:="Xoa & fix path Add-in Registry"
Exit Sub
p1:
  rPath = "Software\Microsoft\Office\" & i & "\Excel\Add-in Manager"
Return
p2:
  rPath = "Software\Microsoft\Office\" & i & "\Excel\AddInLoadTimes"
Return
p3:
  rPath = "Software\Microsoft\Office\" & i & "\Excel\Options"
Return
p:
  objRegistry.EnumValues root, rPath, arrEntryNames, arrValueTypes
  If IsNull(arrEntryNames) Then Return
  For Each strAsk In arrEntryNames
    v = strAsk
    If v Like "*:\*" Then
      If v Like """*""" Then v = Mid$(v, 2, Len(v) - 2)
      If v Like "file:///*" Then v = Mid$(v, 9)
      If FSO.FileExists(v) Then
      Else
        s = s & IIf(s = "", "", vbLf) & "     " & strAsk
        objRegistry.DeleteValue root, rPath, strAsk
'        For Each addin In Application.AddIns
'          If addin.Installed = False Then
'            If strAsk = addin.Path & "\" & addin.Name Then
'              objRegistry.DeleteValue root, rPath, strAsk
'            End If
'          End If
'        Next
      End If
    End If
  Next
Return
o:
  objRegistry.EnumValues root, rPath, arrEntryNames, arrValueTypes
  If IsNull(arrEntryNames) Then Return
  For Each strAsk In arrEntryNames
    If strAsk Like "Open#*" Or strAsk = "Open" Then
      objRegistry.getstringvalue root, rPath, strAsk, v
      If v Like "*:\*" Then
        If v Like """*""" Then v = Mid$(v, 2, Len(v) - 2)
        If v Like "file:///*" Then v = Mid$(v, 9)
        If FSO.FileExists(v) Then
        Else
          s = s & IIf(s = "", "", vbLf) & "     " & v
          objRegistry.DeleteValue root, rPath, strAsk
        End If
      End If
    End If
  Next
Return
End Sub
 

File đính kèm

  • fixAddinInRegistry.xlsm
    26 KB · Đọc: 2
Lần chỉnh sửa cuối:
Lỗi này là do đường dẫn Add-in cài trước đó không còn tồn tại, Excel không xóa đi thiết lập này.
Chớ trót dại đi cài lại Office, tốn kém, mất thời gian.

Bạn chép mã dưới đây vào một Module và nhấn F5 để xóa đường dẫn add-in cũ cài trước đó trong registry để không bị lỗi này
Mã này an toàn, không xóa value của tệp đang tồn tại, không làm ảnh hưởng registry.
Mình đã chạy thử code trên nhưng chưa khắc phục được.
 

File đính kèm

  • Error_Addin_1.JPG
    Error_Addin_1.JPG
    33.1 KB · Đọc: 15
  • Error_Addin_2.JPG
    Error_Addin_2.JPG
    47.1 KB · Đọc: 16
Máy tính nào bị lỗi này thì tất cả các add in đều không khởi động được hết, không riêng gì add in bạn tạo, thậm chí cả add in của microsoft như Analysis ToolPak cũng bị báo lỗi như trên, mình đoán là do win nó cập nhật gì đó hoặc office bị lỗi, hoặc office chưa có bản quyền
 
Bạn chép lại lệnh trên chạy lại xem có được không
Cám ơn bạn đã giúp đỡ. Mình chạy lại code trên, code đã xóa đường dẫn add-in cũ cài trước đó trong registry. Nếu không xài addin thì không báo lỗi nhưng cứ chọn addin xong mở lại file là báo lỗi ko tìm thấy addin đó.
Máy tính nào bị lỗi này thì tất cả các add in đều không khởi động được hết, không riêng gì add in bạn tạo, thậm chí cả add in của microsoft như Analysis ToolPak cũng bị báo lỗi như trên, mình đoán là do win nó cập nhật gì đó hoặc office bị lỗi, hoặc office chưa có bản quyền
Đúng như bạn nói tất cả addin đều không dùng được. Thôi đành sống với lỗi này.
Để bạn chủ thớt test tiếp lỗi có khắc phục được không.
 
Bài #3:
Nếu đúng là Windows 7 + Excel 2010 thì đó là đặc sản.

---
Cái thông báo rõ vậy mà làm cái gì đâu đâu gớm ghiếc quá.

1733453913821.png
 
Cám ơn bạn đã giúp đỡ. Mình chạy lại code trên, code đã xóa đường dẫn add-in cũ cài trước đó trong registry. Nếu không xài addin thì không báo lỗi nhưng cứ chọn addin xong mở lại file là báo lỗi ko tìm thấy addin đó.
Bạn có thể gửi UltraView để tôi xem đường dẫn Add-in nằm ở đâu trong Registry của bạn là có thể biết nguyên nhân, gửi bên tin nhắn riêng bạn nhé.
 
@qtm1987 sau khi xem qua ultraview thì Excel không chạy lệnh lưu Path Add-in vào Add-in Manager sau khi Excel thoát.
Lỗi này có trên Excel 2016. Nên xảy ra lỗi đó.

Bây giờ chỉ cần chạy lệnh fix ở trên bài viết #6 để sửa lỗi.
 
Gần đây có nhiều máy tính xuất hiện hiện tượng Excel thông báo không tìm được đường dẫn tập tin Add-in. Có khả năng phần mềm diệt virus máy bạn đã chặn. Bạn nói rõ hơn máy chạy Windows gì? Chạy phần mềm diệt virus gì?
Đúng là các registry nếu các đường dẫn mới tạo sẽ được trình quét quét xem có nguy cơ tiềm tàn không đó anh. Viết mã VBA nếu các mã liên quan system, tải online thì em có viết bài hướng dẫn để vượt qua.

 
Đúng là các registry nếu các đường dẫn mới tạo sẽ được trình quét quét xem có nguy cơ tiềm tàn không đó anh. Viết mã VBA nếu các mã liên quan system, tải online thì em có viết bài hướng dẫn để vượt qua.


Gần đây hình như Windows Security ở một số phiên bản Windows nâng cấp nó chặn các file Excel add-in rất nghiêm ngặt.
 
Gần đây hình như Windows Security ở một số phiên bản Windows nâng cấp nó chặn các file Excel add-in rất nghiêm ngặt.
Do em không dùng WS nên không biết các trường hợp nó chặn như thế nào. Em đã từng gặp trường hợp nó xóa hẳn dự án của em. Và mất đi công sức gây dựng. Nên em đã tắt chế độ Virus & thread protection. Nó không thực sự hiệu quả.

Em nghĩ là VBA macro có thể ghi hoặc tiêm Dll để thực thi, nên chặn nghiêm ngặt là cần thiết.
Khi hoàn thành dự án, mua chữ ký số, đăng ký bản quyền, là không còn lo chặn.
 
Lần chỉnh sửa cuối:
Do em không dùng WS nên không biết các trường hợp nó chặn như thế nào. Em đã từng gặp trường hợp nó xóa hẳn dự án của em. Và mất đi công sức gây dựng. Nên em đã tắt chế độ Virus & thread protection. Nó không thực sự hiệu quả.

Mình cũng có dự án (add-in xla thôi) bị WS nó chặn. Không biết vì sao. Cũng cố mã hóa mấy từ nhạy cảm "http" nhưng vẫn bị nó xóa, vấn đề khó hiểu là thi thoảng có máy bị chứ không phải tất cả - Phiên bản Windows nào đó, update WS như thế nào đó mà mình cũng chưa rõ.

Thi thoảng muốn kiểm tra dự án VBA nó được coi sạch như thế nào và thử quăng vào https://www.virustotal.com/ quét nhưng vẫn có những thằng vạ mồm báo loạn cả lên dù code chỉ vài lệnh tạo object, gọi hàm.

virustotals.png
 
Mình cũng có dự án (add-in xla thôi) bị WS nó chặn. Không biết vì sao. Cũng cố mã hóa mấy từ nhạy cảm "http" nhưng vẫn bị nó xóa, vấn đề khó hiểu là thi thoảng có máy bị chứ không phải tất cả - Phiên bản Windows nào đó, update WS như thế nào đó mà mình cũng chưa rõ.

Thi thoảng muốn kiểm tra dự án VBA nó được coi sạch như thế nào và thử quăng vào https://www.virustotal.com/ quét nhưng vẫn có những thằng vạ mồm báo loạn cả lên dù code chỉ vài lệnh tạo object, gọi hàm.

Trình quét nó quét mã đã biên dịch là P-Code hoặc thứ cấp biên dịch nào đó, chứ không hẳn là quét mã VBA, khi VBA được biên dịch lại chưa chắc là mã biên dịch trước đó đã được xóa đi. Có khi mã trước đó chứa đoạn mã trình quét nhận diện.

Trong ô excel hoặc các đối tượng có liên kết URL sẽ được đóng gói vào xml, trình quét cũng quét các tập XML.

Nếu anh có 2 phiên bản Excel trên 1 máy, anh có thể lưu ở office mới và đưa sang office cũ để lưu cho nó biên dịch lại.
Và các mã biên dịch cũ sẽ được xóa đi.
 
Gần đây hình như Windows Security ở một số phiên bản Windows nâng cấp nó chặn các file Excel add-in rất nghiêm ngặt.
Nhờ gợi ý này mà mình kiểm tra lại các bản cập nhật và phát hiện vấn đề fix lỗi addin tại bản cập nhật November 19, 2024, update for Excel 2016 (KB4484305). Sau khi cài đặt bản vá lỗi này xong thì mọi chuyện đã được giải quyết. Một lần nữa cám ơn mọi người đã hỗ trợ.KB4484305_FixAddinExcel.JPG
 
Web KT

Bài viết mới nhất

Back
Top Bottom