为什么每隔几次迭代都会出现此错误? “ ActiveX组件无法创建对象”

时间:2019-04-08 05:18:23

标签: excel vba

我正在运行一个程序,必须打开一个文件夹中的.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

1 个答案:

答案 0 :(得分:0)

  

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

也许是因为您创建了太多?在循环外部,仅使用一次,然后在循环内部,使用Set WBK = XL.Workbooks.Open(file)打开文件,然后在循环结束之前关闭文件...此外,由于您正在使用Early Binding,因此可以使用{{1} }一旦进入循环,它将起作用。无需同时使用这两行...

Dim XL As New Excel.Application