我有一个似乎很小的问题,但无法解决。 因此,每周我必须制作一堆数据透视表来汇总所获取的原始数据。我想,如果我将所有表创建到一个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”更改为我的新工作簿的名称,但是它的名称每周都会更改,因为它是基于日期的。 我已经尝试过将新工作簿的名称声明为字符串,并通过该字符串进行调用,但这也不起作用。
有什么想法吗?
答案 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