큰 데이터베이스가 포함 된 통합 문서가 하나 있습니다.피벗 테이블 데이터 원본
내가 부서에 따라 데이터를 정렬 코드를 만든
(이 Basefile.xlsm를 호출 할 수 있습니다), 그리고 일부 사전 기존 피벗 테이블을 업데이트하려면이 옵션을 사용합니다.
피벗 테이블과 정렬 된 데이터는 각 부서마다 별도의 파일로 저장됩니다.
(이 Department1.xls, Department2.xls 등으로 불림).
제 문제는 각 새 파일의 피벗 테이블이 새 파일이 아니라 원래 통합 문서를 계속 참조한다는 것입니다.
(그래서 Department1.xls에서 피벗 테이블 Department1.xls의 시트에서 데이터를 얻을해야하지만 현재 모든 피벗 테이블 여전히 데이터 소스로 Basefile.xlsm 사용)
는 방법이 있나요 이 문제를 해결하려면? - 모든 피벗 테이블을 코드로 만들지 않고?
Sub Selectdata()
Application.ScreenUpdating = False2
' filters for nivå2 enhet, cuts and pastes data into a sheet named after nivå2 - ready for creating pivot table
Dim i As Integer
Dim WS As Worksheet
For i = Worksheets("Department").Range("g4").Value To Worksheets("Department").Range("h4").Value
Sheets("Basefile 2014").Select
ActiveSheet.Range("A:O").AutoFilter Field:=15, Criteria1:= _
Worksheets("Department").Range("b" & i).Value
Cells.Select
Range("A29619").Activate
Selection.Copy
Sheets("Metode").Select
Set WS = Sheets.Add
ActiveSheet.Paste
WS.Name = "RawData 2014"
'shows all the data in the new worksheet
WS.Select
ActiveSheet.Range("A:O").AutoFilter Field:=15
Columns("l:l").Select
' repeats proceedure for 2013
Sheets("Basefile 2013").Select
ActiveSheet.Range("A:O").AutoFilter Field:=15, Criteria1:= _
Worksheets("Department").Range("b" & i).Value
Cells.Select
Range("A29619").Activate
Selection.Copy
Sheets("Metode").Select
Set WSD = Sheets.Add
ActiveSheet.Paste
WSD.Name = "RawData 2013"
'shows all the data in the new worksheet
WSD.Select
ActiveSheet.Range("A:O").AutoFilter Field:=15
Columns("l:l").Select
'Refreshes all the pivot table data
ActiveWorkbook.RefreshAll
Application.ScreenUpdating = True
Filename = Worksheets("Department").Range("c" & i).Value & "2014"
Fname = Worksheets("Department").Range("c" & i).Value & "2013"
Sheets(Array("Funn 2013", "Pivot 2013", "RawData 2013")).Copy
With ActiveWorkbook
.SaveAs "F:\X Simulation\test\" & Fname
.Close
End With
Sheets(Array("Pivot 1.", "Pivot 2.", "Pivot 3.", "Pivot 4.", "Funn 2014", "RawData 2014")).Copy
With ActiveWorkbook
.SaveAs "F:\X Simulation\test\" & Filename
.Close
End With
Application.DisplayAlerts = False
Worksheets("RawData 2014").Delete
Worksheets("RawData 2013").Delete
Application.DisplayAlerts = True
Next i
End Sub