我正在编写一个VBA脚本,递归地通过并从目录中获取所有单词和excel文件然后打开并将它们保存为模板然后关闭。一切都在工作,但当我尝试关闭打开的Excel应用程序时,我收到一个错误 “运行时错误'91': 对象变量或未设置块“
代码如下:
If ExtFind = "xlsx" Or ExtFind = "xls" Then
Debug.Print ("EXCEL FILE FOUND")
Dim xlApp As Excel.Application
Set xlApp = CreateObject("Excel.Application")
xlApp.DisplayAlerts = False
xlApp.Visible = True
xlApp.Workbooks.Open strFile
ActiveWorkbook.SaveAs FileName:=saveString, FileFormat:=xlTemplate
ActiveWorkbook.Close
xlApp.Quit
Set xlApp = Nothing
End If
错误发生在该行:
ActiveWorkbook.SaveAs FileName:=saveString, FileFormat:=xlTemplate
我100%确定变量saveString包含正确的值,该值是从访问表中检索的。代码作为循环的一部分执行。我认为问题与当前的工作簿有关,但我不确定。任何帮助将不胜感激。
答案 0 :(得分:0)
我在评论中看到您注意到必须引用Activeworkbook
作为Excel应用程序对象的属性。
但我建议您考虑在With
区块中进行此操作...
With xlApp
.DisplayAlerts = False
.Visible = True
.Workbooks.Open strFile
.ActiveWorkbook.SaveAs FileName:=saveString, _
FileFormat:=xlTemplate
.ActiveWorkbook.Close
.Quit
End With