簡體   English   中英

如果沒有VB.NET中的“真的想要覆蓋”對話框,如何覆蓋其他Excel文件

[英]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

Application.DisplayAlerts屬性

如果您不希望在程序運行時被提示和警報消息干擾,請將此屬性設置為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類中有一個名為OverwritePromptSaveFileDialog ,將其設置為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM