如何在 VBA 中保存 sheet
how to save a sheet in VBA
我正在构建一个表单,当您填写它时,它应该生成 2 个文件作为输出。
为了做到这一点,我在后台填充了 2 个 sheet,具体取决于用户输入的按钮以保存它们(作为 csv)。
这是保存sheet-
的代码
Worksheets("worksheetname").SaveAs Filename:="C:\path" & name & ".csv", FileFormat:=xlCSV, CreateBackup:=False
问题是用户按下按钮后,他正在填写的表单现在是 'saved as csv',而不是以前的 xlsm。
有没有办法避免这种情况的发生?在不影响表单的情况下生成输出?
谢谢!
为了保持原始工作簿的完整性,您需要在将工作表另存为 CSV 之前创建一份 副本。试试这个:
Application.DisplayAlerts = False
Worksheets("worksheetname").copy ' Forks a copy of the sheet in a new, active WB
With ActiveWorkbook
.SaveAs Filename:="C:\Path\" & name & ".csv", FileFormat:=xlCSV, CreateBackup:=False
.Close False
End With
Application.DisplayAlerts = True
我正在构建一个表单,当您填写它时,它应该生成 2 个文件作为输出。
为了做到这一点,我在后台填充了 2 个 sheet,具体取决于用户输入的按钮以保存它们(作为 csv)。
这是保存sheet-
的代码Worksheets("worksheetname").SaveAs Filename:="C:\path" & name & ".csv", FileFormat:=xlCSV, CreateBackup:=False
问题是用户按下按钮后,他正在填写的表单现在是 'saved as csv',而不是以前的 xlsm。
有没有办法避免这种情况的发生?在不影响表单的情况下生成输出?
谢谢!
为了保持原始工作簿的完整性,您需要在将工作表另存为 CSV 之前创建一份 副本。试试这个:
Application.DisplayAlerts = False
Worksheets("worksheetname").copy ' Forks a copy of the sheet in a new, active WB
With ActiveWorkbook
.SaveAs Filename:="C:\Path\" & name & ".csv", FileFormat:=xlCSV, CreateBackup:=False
.Close False
End With
Application.DisplayAlerts = True