仅保存活动工作表的宏

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,它显示了预期的结束子 干得好。感谢您的帮助

以上是关于仅保存活动工作表的宏的主要内容,如果未能解决你的问题,请参考以下文章

仅更改活动工作表上的值

关闭活动工作表的正确方法?

Excel:将工作表导出为 CSV 文件的宏,无需离开我当前的 Excel 工作表

跨多个工作表的 VBA 宏

如何在 VBA 中获取当前工作表的路径?

用C语言写CSV文件,如何写出多个工作表?