无法将工作表复制到另一个工作簿

时间:2019-05-29 11:55:44

标签: excel vba

我有一个似乎很小的问题,但无法解决。 因此,每周我必须制作一堆数据透视表来汇总所获取的原始数据。我想,如果我将所有表创建到一个Layout文件中,然后将它们复制到新文件中,然后更改源,那将容易得多。我编写了以下代码:

Sub something()

Workbooks.Open Filename:="C:\\\\Layout.xlsx"
With Workbooks("Layout.xlsx")
    .Sheets("Pivot").Copy Before:=ActiveWorkbook.Sheets("Main List")
    .Close savechanges:=False
End With

End Sub

此代码可以正常工作。当我尝试将代码粘贴到我的个人工作簿中,然后直接通过VBA运行而不是每次都复制并粘贴时,就会出现问题。

我能做的是,将代码从“ Activeworkbook”更改为我的新工作簿的名称,但是它的名称每周都会更改,因为它是基于日期的。 我已经尝试过将新工作簿的名称声明为字符串,并通过该字符串进行调用,但这也不起作用。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我将使用工作簿对象来使两个文件保持清晰:

Sub something()

    Dim wb_from As Workbook, wb_to As Workbook
    Set wb_to = ActiveWorkbook
    Workbooks.Open Filename:="C:\\\\Layout.xlsx"
    Set wb_from = Workbooks("Layout.xlsx")
    wb_from.Sheets("Pivot").Copy Before:=wb_to.Sheets("Main List")
    wb_from.Close SaveChanges:=False
end sub