Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 递归存储抛出错误_Ms Access_Excel_Vba - Fatal编程技术网

Ms access 递归存储抛出错误

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

我正在编写一个VBA脚本,它递归地遍历并从目录中获取所有word和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包含正确的值,该值是从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实例?好主意,可以。干杯