简体   繁体   English

VBA关闭空白工作簿

[英]VBA close blank workbook

I found this question asked before, but it was never answered. 我发现之前曾问过这个问题,但从未得到回答。 I have some VBA code that formats different files and outputs them onto an Excel spreadsheet, and then saves copies to two different directories. 我有一些VBA代码,用于格式化不同的文件并将其输出到Excel电子表格中,然后将副本保存到两个不同的目录中。 However, the trouble I'm having is that it leaves an empty workbook open and I don't know how to close it. 但是,我遇到的麻烦是,它会打开一个空的工作簿,并且我不知道如何关闭它。 I have tried Workbooks.Close, and Application.Quit but neither worked. 我已经尝试了Workbooks.Close和Application.Quit,但是都没有用。 Any help would be greatly appreciated. 任何帮助将不胜感激。 Here is the part of my code that I'm referring to: 这是我所指的代码部分:

sSaveAsFilePath = "\\Filesrv02\test\remit" + ".csv"
sSaveAsFilePath2 = "\\Filesrv02\backup\remit" + Format(Date, "mmddyy") + ".csv"

Application.DisplayAlerts = False
ChDir "\\Filesrv02\test"
ActiveWorkbook.SaveAs FileName:=sSaveAsFilePath, _
       FileFormat:=xlCSV, CreateBackup:=False
      'ActiveWorkbook.Close False

ChDir "\\Filesrv02\Backup"
       ActiveWorkbook.SaveAs FileName:=sSaveAsFilePath2, _
       FileFormat:=xlCSV, CreateBackup:=False
       ActiveWorkbook.Close True
Application.DisplayAlerts = False
MsgBox ("done")

End Sub

Since you are only copying a sheet out of your workbook to save in different locations, you can just copy that sheet out of the workbook and save it to another location. 由于您只是将工作表中的工作表复制到其他位置,因此可以将工作表中的工作表复制并保存到其他位置。 This will leave your original workbook intact, and will not make a mysterious blank workbooks. 这将使您的原始工作簿保持原样,并且不会成为神秘的空白工作簿。 Also, note how I qualified all the workbooks and worksheets with variables. 另外,请注意我如何用变量限定所有工作簿和工作表。

sSaveAsFilePath = "\\Filesrv02\test\remit" + ".csv"
sSaveAsFilePath2 = "\\Filesrv02\backup\remit" + Format(Date, "mmddyy") + ".csv"

Application.DisplayAlerts = False

Dim wb As Workbook, wbC As Workbook, ws As Worksheet

Set wb = ThisWorkbook
Set ws = ws.Sheets("mySheet") 'change name as needed

'create and save test version
ws.Copy

Set wbC = ActiveWorkbook

With wbC
    .SaveAs Filename:=sSaveAsFilePath, FileFormat:=xlCSV, CreateBackup:=False
    .Close
End With

'create and save backup version
ws.Copy

Set wbC = ActiveWorkbook

With wbC
    .SaveAs Filename:=sSaveAsFilePath2, FileFormat:=xlCSV, CreateBackup:=False
    .Close
End With

Application.DisplayAlerts = False

MsgBox ("done")

Create a new workbook before save 保存前创建一个新工作簿

    Application.Workbooks.Add
    ActiveWorkbook.SaveAs FileName:=sSaveAsFilePath, _
           FileFormat:=xlCSV, CreateBackup:=False
    ActiveWorkbook.Close False

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM