我正在使用两个程序:
一个。在工作表中列出活动的加载项名称(工作正常)
Sub ListAddins()
Dim lngrow As Long, objAddin As AddIn
Sheet1.Range("AG1:AH1000").ClearContents
lngrow = 1
With Sheet1
For Each objAddin In Application.AddIns
.Cells(lngrow, "AG").Value = objAddin.Name
.Cells(lngrow, "AH").Value = objAddin.FullName
lngrow = lngrow + 1
Next objAddin
End With
End Sub
B中。浏览加载项名称并禁用它们
Sub disable_addins()
Dim cell As Range, rng2 As Range, addstr As String
Set rng2 = Xloader.Range("AH1:AH" & Xloader.Range("AH65536").End(xlUp).Row)
For Each cell In rng2
addstr = cell.Value
Application.AddIns(addstr).Installed = False
Next cell
End Sub
我在倒数第二行程序B中得到一个错误的下标超出范围。任何想法?
答案 0 :(得分:2)
Application.AddIns
属性不适用于加载项的Name
或FullName
。它需要加载项 Title
!
因此,对于AH栏,请执行此操作而不是FullName
:
.Cells(lngrow, "AH").Value = objAddin.Title
^^^^^
然后程序B应按预期工作。
或者你可以在程序A中添加一个新的加载项信息,如下所示:
.Cells(lngrow, "AI").Value = objAddin.Title
并在过程B中引用该列,如果您想继续在其自己的列中看到FullName
。