我怎么能覆盖其他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
类中有一个名为OverwritePrompt
的SaveFileDialog
,将其设置为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