为什么每隔几次迭代就会收到此错误?"ActiveX 组件无法创建对象"



我正在运行一个程序,我必须一个接一个地打开文件夹中的.xls文件并从中获取信息。在我的函数开始时,我为我要打开的每个.xls文件运行下面的代码。

但是,每隔一段时间,我在第四行代码上收到此错误:"ActiveX 组件无法创建对象"。

在错误窗口中单击调试后,我只需单击继续,代码即可开始正常运行。它打开文件并获取我想要的信息。

为什么会出现此错误?我不想继续点击以推进此过程。

提前谢谢。

Function getPerfumeName(file)
    Dim XL As Excel.Application
    Dim WBK As Excel.Workbook
    Set XL = CreateObject("Excel.Application")
    Set WBK = XL.Workbooks.Open(file)
    phrase = Split(WBK.Sheets(1).Cells(3, 1).Value, ":")
    If phrase(0) = "PERFUME GCAS" Then
        getPerfumeName = phrase(UBound(phrase))
    Else
        getPerfumeName = ""
    End If
    WBK.Close
    Set XL = Nothing
End Function

我为我要打开的每个.xls文件运行下面的代码。

也许是因为您创建了太多?在循环外,只使用它一次,然后在循环内使用 Set WBK = XL.Workbooks.Open(file) 打开文件,然后在循环结束之前关闭文件......此外,由于您正在使用早期绑定,因此您可以在循环外使用一次Dim XL As New Excel.Application,它将起作用。无需同时使用两条线...

Sub Sample()
    Dim XL As New Excel.Application
    Dim WBK As Excel.Workbook
    For i = 1 To whatever
        Set WBK = XL.Workbooks.Open(file)
        '
        '~~> Do Something
        '
        WBK.Close (False) 'or WBK.Close(True)
        Set WBK = Nothing
    Next i
    XL.Quit
    Set XL = Nothing
End Sub

相关内容

最新更新