Ms access 递归存储抛出错误
我正在编写一个VBA脚本,它递归地遍历并从目录中获取所有word和excel文件,然后打开并将它们保存为模板,然后关闭。一切都在相应地工作,但当我试图关闭打开的excel应用程序时,我得到了一个错误 运行时错误“91”: 对象变量或未设置块 代码如下:Ms access 递归存储抛出错误,ms-access,excel,vba,Ms Access,Excel,Vba,我正在编写一个VBA脚本,它递归地遍历并从目录中获取所有word和excel文件,然后打开并将它们保存为模板,然后关闭。一切都在相应地工作,但当我试图关闭打开的excel应用程序时,我得到了一个错误 运行时错误“91”: 对象变量或未设置块 代码如下: If ExtFind = "xlsx" Or ExtFind = "xls" Then Debug.Print ("EXCEL FILE FOUND") Dim xlApp As Excel.Application Set xlApp = Cre
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包含正确的值,该值是从access表检索的。代码作为循环的一部分执行。我认为问题与当前工作簿有关,但我不确定。任何帮助都将不胜感激 我从您注意到的注释中看到,您必须引用Activeworkbook作为Excel应用程序对象的属性 但是我想建议你考虑用一个块做……/p>
With xlApp
.DisplayAlerts = False
.Visible = True
.Workbooks.Open strFile
.ActiveWorkbook.SaveAs FileName:=saveString, _
FileFormat:=xlTemplate
.ActiveWorkbook.Close
.Quit
End With
真不敢相信我这么瞎,我所需要做的就是更改:ActiveWorkbook.SaveAs文件名:=保存字符串,文件格式:=xlTemplate ActiveWorkbook.SaveAs文件名:=保存字符串,文件格式:=xlTemplate xlApp.ActiveWorkbook.Close如果已经有Excel实例,为什么要打开一个新的Excel实例?好主意,可以。干杯