Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.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
Vba “忽略”;您是否希望保存;excel退出时的复选框_Vba_Excel_Vbscript - Fatal编程技术网

Vba “忽略”;您是否希望保存;excel退出时的复选框

Vba “忽略”;您是否希望保存;excel退出时的复选框,vba,excel,vbscript,Vba,Excel,Vbscript,我有一个脚本,可以打开一个excel文件并运行宏,然后退出该文件。由于文件处于只读模式,并且脚本对文件进行临时更改,因此当脚本调用myExcelWorker.Quit()excel时,会询问我是否要保存更改,我必须单击“否”。有没有办法退出程序并跳过此框 ' Create a WshShell to get the current directory Dim WshShell Set WshShell = CreateObject("WScript.Shell") ' Create an Ex

我有一个脚本,可以打开一个excel文件并运行宏,然后退出该文件。由于文件处于只读模式,并且脚本对文件进行临时更改,因此当脚本调用
myExcelWorker.Quit()
excel时,会询问我是否要保存更改,我必须单击“否”。有没有办法退出程序并跳过此框

' Create a WshShell to get the current directory
Dim WshShell
Set WshShell = CreateObject("WScript.Shell")

' Create an Excel instance
Dim myExcelWorker
Set myExcelWorker = CreateObject("Excel.Application") 

myExcelWorker.Visible = True

' Tell Excel what the current working directory is 
' (otherwise it can't find the files)
Dim strSaveDefaultPath
Dim strPath
strSaveDefaultPath = myExcelWorker.DefaultFilePath
strPath = WshShell.CurrentDirectory
myExcelWorker.DefaultFilePath = strPath

' Open the Workbook specified on the command-line 
Dim oWorkBook
Dim strWorkerWB
strWorkerWB = strPath & "\BugHistogram_v2.xlsm"

Set oWorkBook = myExcelWorker.Workbooks.Open(strWorkerWB)

' Build the macro name with the full path to the workbook
Dim strMacroName
strMacroName = "CreateImagesButton_Click"
on error resume next 
   ' Run the calculation macro
   myExcelWorker.Run strMacroName
   if err.number <> 0 Then
      ' Error occurred - just close it down.
   End If
   err.clear
on error goto 0 

' oWorkBook.Save ' this is ignored because it's read only 

myExcelWorker.DefaultFilePath = strSaveDefaultPath

' Clean up and shut down
Set oWorkBook = Nothing

' Don’t Quit() Excel if there are other Excel instances 
' running, Quit() will 
' shut those down also
if myExcelWorker.Workbooks.Count = 0 Then
   myExcelWorker.Quit
End If

myExcelWorker.Quit()

Set myExcelWorker = Nothing
Set WshShell = Nothing
'创建WshShell以获取当前目录
昏暗的地狱
设置WshShell=CreateObject(“WScript.Shell”)
'创建Excel实例
我的业余爱好者
设置myExcelWorker=CreateObject(“Excel.Application”)
myExcelWorker.Visible=True
'告诉Excel当前工作目录是什么
'(否则它找不到文件)
暗strSaveDefaultPath
暗通道
strSaveDefaultPath=myExcelWorker.DefaultFilePath
strPath=WshShell.CurrentDirectory
myExcelWorker.DefaultFilePath=strPath
'打开命令行上指定的工作簿
暗淡的工作手册
Dim STRWORKERB
strWorkerWB=strPath&“\BugHistogram\u v2.xlsm”
设置oWorkBook=myExcelWorker.Workbooks.Open(strWorkerWB)
'使用工作簿的完整路径生成宏名称
Dim strMacroName
strMacroName=“CreateImagesButton\u单击”
出错时继续下一步
'运行计算宏
myExcelWorker。运行strMacroName
如果错误号为0,则
'发生错误-请将其关闭。
如果结束
清楚
错误转到0
“oWorkBook.Save”这是只读的,因此被忽略
myExcelWorker.DefaultFilePath=strSaveDefaultPath
"清理关闭",
设置oWorkBook=Nothing
'如果存在其他Excel实例,则不退出()Excel
'正在运行,退出()将
“把它们也关了
如果myExcelWorker.Workbooks.Count=0,则
myExcelWorker,退出
如果结束
myExcelWorker.Quit()
设置myExcelWorker=Nothing
设置WshShell=Nothing

ActiveWorkbook.Close False
(关闭工作簿)

Application.Quit
(退出Excel-不提示保存更改)

来自Microsoft支持部门:

要强制关闭工作簿而不保存任何更改,请键入 该工作簿的Visual Basic模块中的以下代码:

Sub Auto_Close()
ThisWorkbook.Saved=True
端接头
由于Saved属性设置为True,Excel的响应就像工作簿已经保存,并且没有任何更改 自上次保存后发生

程序的DisplayAlerts属性可用于相同的用途 目的。例如,以下宏将关闭显示警报, 关闭活动工作簿而不保存更改,然后打开 再次显示警报

Sub CloseBook()
Application.DisplayAlerts=False
活动工作簿。关闭
Application.DisplayAlerts=True
端接头
您还可以使用Close方法的SaveChanges参数

以下宏关闭工作簿而不保存更改:

Sub CloseBook2()
ActiveWorkbook.Close savechanges:=False
端接头

您上面的答案是针对
VBA
——您可以在
VBS
中直接使用

oWorkBook.Close False
Set oWorkBook = Nothing
代替

Set oWorkBook = Nothing

非常感谢。我使用了CloseBook()方法。