0
새 시트에 자동으로 피벗 테이블을 삽입하고 싶습니다. 이 작업을 실행하면 피벗 테이블 이름의 새 시트 만 삽입되지만 피벗 캐시는 만들지 않으며 소스 시트에서 데이터를 읽지 않습니다. 이 경우 시트 이름은 Data
이고 Pivot
이어야합니다.새 시트에 피벗 테이블 대신 새 시트 만 넣습니다.
Sub InsertPivotTable()
Dim PSheet As Worksheet
Dim DSheet As Worksheet
Dim PCache As PivotCache
Dim PTable As PivotTable
Dim PRange As Range
Dim LastRow As Long
Dim LastCol As Long
On Error Resume Next
Application.DisplayAlerts = False
Worksheets("PivotTable").Delete
Sheets.Add Before:=ActiveSheet
ActiveSheet.Name = "PivotTable"
Application.DisplayAlerts = True
Set PSheet = Worksheets("PivotTable")
Set DSheet = Worksheets("Data")
LastRow = DSheet.Cells(Rows.Count, 1).End(xlUp).Row
LastCol = DSheet.Cells(1, Columns.Count).End(xlToLeft).Column
Set PRange = DSheet.Cells(1, 1).Resize(LastRow, LastCol)
Set PCache = ActiveWorkbook.PivotCaches.Create _
(SourceType:=xlDatabase, SourceData:=PRange). _
CreatePivotTable(TableDestination:=PSheet.Cells(2, 2), _
TableName:="PivotTable")
Set PTable = PCache.CreatePivotTable _
(TableDestination:=PSheet.Cells(1, 1), TableName:="PivotTable")
With ActiveSheet.PivotTables("PivotTable").PivotFields("Last_Touch_User_Name")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("PivotTable").PivotFields("Action_Code")
.Orientation = xlColumnField
.Position = 1
End With
With ActiveSheet.PivotTables("PivotTable").PivotFields("Result_Code")
.Orientation = xlColumnField
.Position = 2
End With
With ActiveSheet.PivotTables("PivotTable").PivotFields("Medical_Manager__")
.Orientation = xlDataField
.Position = 1
.Function = xlCount
End With
End Sub
당신이 게시 수정하세요. VBE에서 직접 코드를 복사하여 붙여 넣은 다음 blockquote가 아닌 코드로 서식을 지정하십시오. 나는 그것을 닦으려고했지만 시간을 보내고 싶지 않습니다. – teylyn
두 번째 @teylyn. 나는 그 대부분을했으나 다음 번에 코드를 정리해야합니다. 쉽습니다. VBE에서 (코드를 작성한 곳에서 강조 표시하고 Tab을 누르면 코드가 여기에 복사됩니다. 필요에 따라 코드가 자동으로 포맷됩니다. – L42