我试图从一个工作簿复制三张(两张是数据透视表,其中一张是来自这些枢轴的源数据),并将其从一个工作簿复制到新的工作簿。复制工作表的数据源
下面副本的代码所需的片材的新的工作簿,并保存它(改性original):
Sub ExportFile()
Dim NewName As String
Dim nm As Name
Dim ws As Worksheet
With Application
.ScreenUpdating = False
On Error GoTo ErrCatcher
' Array of sheets to copy
Sheets(Array("sourcedata", "pivot", "pivot2")).Copy
On Error GoTo 0
For Each ws In ActiveWorkbook.Worksheets
ws.Cells.Copy
' Paste sheets
ws.[A1].PasteSpecial
' Remove external links, hyperlinks and hard-code formulas
ws.Cells.Hyperlinks.Delete
Application.CutCopyMode = False
' Select A1 on sheet
Cells(1, 1).Select
ws.Activate
Next ws
Cells(1, 1).Select
' Save it in the same directory as original and close
ActiveWorkbook.SaveCopyAs ThisWorkbook.Path & "\export.xls"
ActiveWorkbook.Close SaveChanges:=False
.ScreenUpdating = True
End With
Exit Sub
ErrCatcher:
MsgBox "Specified sheets do not exist within this workbook"
End Sub
然而,当我打开新的工作簿时,在枢轴表中的数据源仍然指向原始工作簿。我的同事解释说,这是因为表单被逐一复制,而不是一组,并建议复制表单作为范围。我怎样才能将这些表单复制为一个范围,或者将数据源更改为新的复制表单更简单?
您需要将数据透视表的源数据更改为新的工作簿。仅仅因为您一次复制所有工作表,不会让数据透视表知道您想将源更改为复制的工作表。 –