[英]How can I overwrite an other Excel-file without the Dialog “Really want to overwrite” in VB.NET
如何将我用VB.NE编辑的Excel文件保存到已存在的文件中? Evertime有一个对话框:文件已经存在。 你真的想覆盖吗? YES | NO |中止
没有这个对话框我怎么能覆盖?
你应该看看设置
DisplayAlerts=false
如果您不希望在程序运行时被提示和警报消息干扰,请将此属性设置为False; 每当邮件需要响应时,Microsoft Excel都会选择默认响应。
一旦完成,请记住将其重置为true。
我们目前这样做如下
object m_objOpt = Missing.Value;
m_Workbook.Application.DisplayAlerts = false;
m_Workbook.SaveAs( fileName, m_objOpt, m_objOpt,
m_objOpt, m_objOpt, m_objOpt,
XlSaveAsAccessMode.xlNoChange,
XlSaveConflictResolution.xlLocalSessionChanges,
m_objOpt, m_objOpt, m_objOpt, m_objOpt);
Dim xlWorkBook As Excel.Workbook Dim xlWorkSheet As Excel.Worksheet Dim misValue As Object = System.Reflection.Missing.Value
xlWorkBook.SaveAs(<YourFileName>, Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue)
xlWorkBook.Close(True, misValue, misValue)
在覆盖之前,你不能先尝试删除文件吗?
SaveFileDialog
类中有一个名为OverwritePrompt
的SaveFileDialog
,将其设置为false。
希望这可以帮助。
我解决了在创建工作簿时将xlApp.Workbooks.Open的第三个参数设置为false的问题。 这是readonly参数,如果设置为true,它将要求保存文件。
Sub ExcelMacroExec2()
Dim xlApp, xlBook
Set xlApp = CreateObject("Excel.Application")
xlApp.DisplayAlerts = False
Set xlBook = xlApp.Workbooks.Open("C:\Users\A\myFile.xlsm", 0, False)
xlApp.Run "Macro1"
xlApp.Save
xlBook.Close false
xlApp.Quit
Set xlApp = Nothing
set xlBook = Nothing
End Sub
我通过使用Object.Save()方法来解决此问题。 我尝试使用SaveAs方法,即使DisplayAlerts = $ false,但它仍然不断给我覆盖警告。
下面的代码片段:
# Create an Object Excel.Application using Com interface
$objExcel = New-Object -ComObject Excel.Application
# Disable the 'visible' property so the document won't open in excel
$objExcel.Visible = $true
# Override warning messages about existing file
$objExcel.DisplayAlerts = $false
# Open the Excel file and save it in $WorkBook
$WorkBook = $objExcel.Workbooks.Open($FilePath)
# Load the WorkSheet 'BuildSpecs'
$WorkSheet = $WorkBook.sheets.item($SheetName)
# Pause execution to allow data refresh to occur (about 5 minutes to be safe)
Start-Sleep -s 300
# Now the Save the file After Refreshing (need to add a pause for about 5 minutes)
$WorkBook.Save()
# Wait while saving before closing excel object
Start-Sleep -s 30
# Now close the workbook
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.