我怎么能覆盖其他Excel文件没有对话框“真的想覆盖”在VB.NET

我如何将一个Excel文件保存到一个已经存在的文件中? Evertime有一个对话框:文件已经存在。 你真的想覆盖吗? YES | NO |中止

如何在没有这个对话框的情况下覆盖?

你应该看看设置

DisplayAlerts=false 

Application.DisplayAlerts属性

如果您不希望在程序运行时受到提示和警报消息的干扰,请将此属性设置为False; 任何时候邮件需要响应,Microsoft Excelselect默认响应。

只要记住,一旦你完成重置它为真。

我们目前这样做如下

 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类中有一个名为OverwritePromptSaveFileDialog ,将其设置为false。

希望这可以帮助。

我解决了在创build工作簿时将xlApp.Workbooks.Open的第三个参数设置为false的问题。 这是只读参数,如果它设置为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