我正在运行一个程序,必须打开一个文件夹中的.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
答案 0 :(得分:0)
我为要打开的每个.xls文件在下面运行此代码。
也许是因为您创建了太多?在循环外部,仅使用一次,然后在循环内部,使用Set WBK = XL.Workbooks.Open(file)
打开文件,然后在循环结束之前关闭文件...此外,由于您正在使用Early Binding,因此可以使用{{1} }一旦进入循环,它将起作用。无需同时使用这两行...
Dim XL As New Excel.Application