VBScript 要求我覆盖 Excel 文件,尽管 DisplayAlerts = False

VBScript asks me to overwrite Excel file despite DisplayAlerts = False

我想通过 VBScript 从 Excel 文件中 运行 一个宏,这样我就可以通过任务计划程序 运行 该脚本。

该部分有效,但当它尝试保存文件时,它总是询问 "File already exists, want to overwrite? Yes, No, Cancel"。

在研究过程中,每个线程都说将 DisplayAlerts 设置为 False,我已经这样做了,但没有用。如果我只使用 .Save,那么它会将它保存到我的默认文档目录 - 而不是共享点。

strPath = "\ecs.zspi.company.de@SSL\DavWWWRoot\Folder\Test.xlsm" 

strMacro = "VV.VVImport2" '  

Set objApp = CreateObject("Excel.Application") 
objApp.Visible = True   
objApp.DisplayAlerts = False
objApp.AskToUpdateLinks = False
objApp.AlertBeforeOverwriting = False
objApp.FeatureInstall = msoFeatureInstallNone

Set wbToRun = objApp.Workbooks.Open(strPath) 
objApp.Run strMacro 
wbToRun.SaveAs "\ecs.zspi.company.de@SSL\DavWWWRoot\Folder\Test.xlsm" 
wbToRun.Close False
objApp.Quit 

它应该在不提示的情况下将文件保存到原始位置。但我总是收到警告框 "File already exists, want to overwrite? Yes, No, Cancel".

您需要将工作簿的.Saved属性设置为True

...
wbToRun.SaveAs "\ecs.zspi.company.de@SSL\DavWWWRoot\Folder\Test.xlsm" 
wbToRun.Saved = True
wbToRun.Close False
objApp.Quit 

似乎 SaveAs 方法没有将 属性 设置为 True,我以前遇到过这个问题,这为我解决了。