无法以编程方式刷新VBA代码

我有一个像这样的例程:

Private Sub RefreshByName(strFileType As String) Dim strFile As String strFile = Dir(".\*." & strFileType, vbNormal) Do While Len(strFile) > 0 Dim strCompName As String Dim vbComp As Object strCompName = Left(strFile, Len(strFile) - 4) 'Fails here vbComp = ActiveWorkbook.VBProject.VBComponents(strCompName) ActiveWorkbook.VBProject.VBComponents.Remove vbComp ActiveWorkbook.VBProject.VBComponents.import (strFile) strFile = Dir Loop End Sub 

根据我在网上阅读的大部分内容,应该可以通过名字引用VBComponents,但是它不起作用。 我错过了什么?

通常我得到的错误是Run-time error 438: Object doesn't support this property or method 。 – 这不是我在代码的特定变体上得到的错误 – 而是这是一个error 91: Object variable or With block variable not set

但是我把所有的声明都分解了,看看导致问题的确切部分。 在玩这个来得到确切的错误信息,它突然对我工作(无论如何,对我来说)我正试图find正确的组合,但任何帮助与错误消息将不胜感激。

你不应该使用Set时,你应该:

 Set vbComp = ActiveWorkbook.VBProject.VBComponents(strCompName) 

您可能还想从.import (strFile) 删除括号 。