Как я могу перезаписать другой файл Excel без диалога «На самом деле хочу переписать» в VB.NET

Как сохранить файл Excel, который я бы отредактировал с помощью VB.NE, в файл, который уже существует? Evertime есть диалог: Файл уже существует. Вы действительно хотите перезаписать? ДА | НЕТ | Прервать

Как я могу перезаписать без этого диалога?

Вы должны взглянуть на настройку

DisplayAlerts=false 

Свойство Application.DisplayAlerts

Установите для этого свойства значение False, если вы не хотите, чтобы вас беспокоили подсказки и предупреждающие сообщения во время работы программы; в любое время, когда сообщение требует ответа, Microsoft Excel выбирает ответ по умолчанию.

Просто не забудьте сбросить его до истины, как только вы закончите.

В настоящее время мы делаем это следующим образом

 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 , для этого установлено значение 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 
Interesting Posts
Давайте будем гением компьютера.