Excel 2003 VBA:将工作表移动到由变量引用的新工作簿

Mar*_*ret 2 excel vba excel-2003 excel-vba

我有一个函数,用于运行ShowPages()数据透视表的命令,然后将每个工作表保存到一个单独的文件.

这是我希望我能做到的方式:

Sub Split()
    ThisWorkbook.Sheets("Data").PivotTables("Data").ShowPages PageField:="Codename"
    Dim newWb As Workbook

    For Each s In ThisWorkbook.Sheets
        If s.Name <> "Data" Then
            Set newWb = s.Move #This is the line I'm trying to work out
            newWb.SaveAs Filename:="C:\Export\" + s.Name + ".xls"
            newWb.Close
        End If
    Next s

End Sub
Run Code Online (Sandbox Code Playgroud)

不幸的是,这与未创建对象等(可以理解)的问题有关.这样做最明智的方法是什么?

sol*_*man 6

Sub Split()
ThisWorkbook.Sheets("Data").PivotTables("Data").ShowPages PageField:="Codename"
Dim newWb As Workbook   

For Each s In ThisWorkbook.Sheets
    If s.Name <> "Data" Then
        ''Added by Soldieraman
        Dim sheetName As String
        sheetName = s.Name

        Set newWb = Workbooks.Add
        s.Move before:=newWb.Sheets(1)
        Application.DisplayAlerts = False
        newWb.Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Delete
        Application.DisplayAlerts = True

        ''Edited by soldieraman
        newWb.SaveAs Filename:="C:\Export\Test" & sheetName & ".xls"
        newWb.Close
    End If
Next s
End Sub
Run Code Online (Sandbox Code Playgroud)