【问题标题】:Save Selected Sheets to a different work book in VBA将选定的工作表保存到 VBA 中的不同工作簿
【发布时间】:2015-03-31 15:13:58
【问题描述】:

我想将当前工作簿中的多个工作表保存到另一个工作簿中,并从该保存过程中排除名为“按钮”的工作表(在当前工作表中)。

有人可以帮忙吗?工作表的数量是可变的,仅供参考。

以下是我目前所拥有的,其中包括当前工作簿中的所有工作表。

Sub SaveAs()

D1 = VBA.Format(Now, "mm_DD_yyyy")
For Each ws In Application.Workbooks
    ws.SaveAs Filename:="C:\Users\e2309\Desktop\Andy's\GBB_Report_" & D1 & ".csv"
Next ws

Application.Quit
End Sub

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    或者更直接

    • 复制整个工作簿
    • 删除多余的工作表

    代码

    Sub Simpler()
    
    Dim wb As Workbook
    Dim strFile As String
    
    strFile = "C:\temp\yourfile.xlsm"
    ThisWorkbook.SaveAs strFile, xlOpenXMLWorkbookMacroEnabled
    Application.DisplayAlerts = False
    ThisWorkbook.Sheets("buttons").Delete
    Application.DisplayAlerts = True
    End Sub
    

    【讨论】:

    • 是的!我就是这么想的。非常感谢!
    【解决方案2】:

    这可能会让你更接近一点。请注意,这并不完整且未经测试。

    Sub work()
    Dim WB As Workbook
    Dim Nwb As Workbook
    Dim WS As Worksheet
    Set Nwb = New Workbook
    Set WB = ThisWorkbook
    
    For Each WS In WB.Sheets
        If WS.Name <> "Don't copy" Then
            WS.Copy Nwb.Sheets("sheet1")
        End If
    Next
    
    Nwb.Save
    
    End Sub
    

    【讨论】:

    • 嘿,请注意,您将使用 Bigtree 具有“nwb.Save”的 ws.SaveAs 行。 (一定要把你的ws换成他的nwb
    • “sheet1”在那里做什么?我不认为我需要Nwb,对吧?错误 429:ActiveX 组件无法在“Set Nwb = New Workbook”上创建对象
    • ws.copy ws.sheets("sheet1") 行是错误的。抱歉,我对 VBA 很陌生
    • 问题已解决。 Sub SaveAs() D1 = VBA.Format(Now, "mm_DD_yyyy") For Each ws In Application.Workbooks Application.DisplayAlerts = False Sheets("buttons").delete ws.SaveAs Filename:="C:\Users\23225\ Desktop\Andy\GVS_Report_" & D1 & ".csv" Next ws Application.Quit Application.DisplayAlerts = True End Sub
    猜你喜欢
    • 2016-02-26
    • 1970-01-01
    • 2017-03-10
    • 2014-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多