仅保存活动工作表的宏
Posted
技术标签:
【中文标题】仅保存活动工作表的宏【英文标题】:Macro to save only the active worksheet 【发布时间】:2018-02-23 05:14:48 【问题描述】:在下面的代码中,它保存了完整的工作簿。我只想保存活动的工作表。
Sub sbVBS_To_SAVE_ActiveWorkbook()
ActiveWorkbook.Save
End Sub
【问题讨论】:
您可以将活动工作表导出到新工作簿并保存在那里,但您不能将一个工作表从多个工作簿中保存到一个工作簿中。 感谢您的回复@Jeeped 所以我必须将所有工作表保存在不同的工作簿中。 是的,使用当前工作簿中的一个工作表的副本创建一个新工作簿很容易。Sub SaveAsMacro() Dim strDir As String 'Show standard save as dialogue box With Application.FileDialog(msoFileDialogSaveAs) If .Show = -1 Then strDir = .SelectedItems(1) End If End With Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:=strDir Application.DisplayAlerts = True End Sub
【参考方案1】:
将工作表复制到任何位置会自动在前台创建一个新工作簿,并将该工作表的副本作为新工作簿中的唯一工作表。
Sub test()
worksheets("sheet3").copy
'there is now a new active workbook
with activeworkbook
'save it
.SaveAs Filename:="some file path and filename without extension", FileFormat:=xlOpenXMLWorkbook
'optionally close it
.close savechanges:=false
end with
End Sub
【讨论】:
Sub test() Worksheets("Sheet1").Copy With ActiveWorkbook .SaveAs Filename:="C:\Users\my_name\Documents\Excel\test", FileFormat:=xlOpenXMLWorkbook .Close savechanges:=False End Sub
你错过了我在上面代码中的结尾。
我现在添加了End with
,它显示了预期的结束子
干得好。感谢您的帮助以上是关于仅保存活动工作表的宏的主要内容,如果未能解决你的问题,请参考以下文章