列出加载项并禁用它们

我正在使用两个程序:

A.在工作表中列出活动的加载项名称(工作正常)

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的倒数第二行出现错误下标超出范围。有什么想法?

Application.AddIns属性不能与加载项的NameFullName一起使用。 它需要joinTitle

所以,对于列AH,而不是FullName

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

那么程序B应该按照预期工作。

或者你可以在A列中添加一个新的加载信息,就像过程A中那样:

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

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