数据透视表源更改

时间:2018-02-09 03:58:43

标签: vba pivot-table

我创建了一个宏来复制工作簿中的多个工作表,并在将所有工作表的已使用值更改为值粘贴后将其另存为新工作簿。但是我在工作表中有两个带有数据透视表的工作表,这些数据透视表源数据显示的是上一个工作簿而不是新工作簿。有人可以帮助我将源更改为活动工作簿。我正在将源数据复制到新工作簿。这里的源数据表是“详细的EPM”,我的源数据不是动态的。它总是固定的。(范围“A4:AF76”)

Sub Export_Final()
Dim Wb As Workbook
Dim NewWb As Workbook


Set Wb = ActiveWorkbook

Wb.Sheets(Array("Team Utilisation", "Task wise Utilisation", "Detailed EPM", 
"Pivot Production", "Pivot Non Production")).Copy
Dim rs As Worksheet

For Each rs In ActiveWorkbook.Worksheets
If rs.Name <> "Pivot Production" And rs.Name <> "Pivot Non Production" Then
rs.UsedRange = rs.UsedRange.Value
End If
Next rs

Dim FileSaveName As String
Dim fPath As String
fPath = ThisWorkbook.Path & "\"
tDate = VBA.Format(DateSerial(Year(Date), Month(Date), Day(Date)), "dd-mm-
yyyy")

Set NewWb = ActiveWorkbook
NewWb.SaveAs fPath & "Updated " & tDate & ".xlsm", FileFormat:=52
NewWb.Close

End Sub

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

我建议您不要将工作表复制到新工作簿,而是将整个工作簿保存到新工作簿中,然后删除您不想要的工作表,只留下您执行的工作表。这样您就不必将数据透视表重新指向新的数据源。如果你按照目前的方式进行,那么数据透视表中的所有数据透视表都将被清除,这是一个额外的痛苦。