列出加载项并禁用它们

时间:2014-08-14 20:55:49

标签: excel excel-vba vba

我正在使用两个程序:

一个。在工作表中列出活动的加载项名称(工作正常)

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中得到一个错误的下标超出范围。任何想法?

1 个答案:

答案 0 :(得分:2)

Application.AddIns属性不适用于加载项的NameFullName。它需要加载项 Title

因此,对于AH栏,请执行此操作而不是FullName

.Cells(lngrow, "AH").Value = objAddin.Title
                                      ^^^^^

然后程序B应按预期工作。

或者你可以在程序A中添加一个新的加载项信息,如下所示:

.Cells(lngrow, "AI").Value = objAddin.Title

并在过程B中引用该列,如果您想继续在其自己的列中看到FullName