Excel VBA: 禁用另存为功能时自动打开 运行

Excel VBA: Disable Auto Open when Save As function is run

我是 运行 一个代码,它获取输入的数据并创建文件的副本。那也行;但是,每次保存时都会打开新文件。我想保存文件而不自动打开它。我正在玩弄下面列出的一些代码:

 Dim x As Object
        Set x = Application.VBE.ActiveVBProject.VBComponents
        x.Remove VBComponent:=x.Item("TestModule")

下面是“另存为”功能的完整代码。

Public sourceWB As Workbook
Public sourceWS As Worksheet
Public targetWB As Workbook
Public targetWS As Worksheet
Public sDate As String

Sub Main()

   sDate = Format(Now(), "mm.dd.yyyy")
    Set sourceWB = ThisWorkbook
    Set sourceWS = sourceWB.Sheets("**FILE NAME DISCREET")


    Set targetWB = Workbooks.Add
    Dim theFilename As String
   theFilename = "**FILE NAME DISCREET**" + sDate + ".xlsx"

   targetWB.SaveAs FileName:= **"FILE LOCATION TO BE KEPT DISCREET, SORRY "**
    Set targetWS = targetWB.Sheets("Sheet1")

   sourceWS.Range("A1:H45").Copy targetWS.Range("A1")
   targetWB.Save

End Sub

Private Sub ManhExportData_Click()
       Call Main
End Sub

为了关闭您使用 Add 方法创建的工作簿,您应该对工作簿使用 Close 方法。

Public sourceWB As Workbook
Public sourceWS As Worksheet
Public targetWB As Workbook
Public targetWS As Worksheet
Public sDate As String

Sub Main()

    sDate = Format(Now(), "mm.dd.yyyy")
    Set sourceWB = ThisWorkbook
    Set sourceWS = sourceWB.Sheets("**FILE NAME DISCREET")

    Set targetWB = Workbooks.Add
    Dim theFilename As String
    theFilename = "**FILE NAME DISCREET**" + sDate + ".xlsx"

    targetWB.SaveAs FileName:= **"FILE LOCATION TO BE KEPT DISCREET, SORRY "**
    Set targetWS = targetWB.Sheets("Sheet1")

    sourceWS.Range("A1:H45").Copy targetWS.Range("A1")
    targetWB.Save

    'Close the workbook
    targetWB.Close

End Sub

Private Sub ManhExportData_Click()
    Call Main
End Sub