รบกวนสอบถามวิธีสร้างpivot table ด้วย VBA แบบอัตโนมัติ
Posted: Mon Sep 09, 2019 9:10 am
สวัสดีครับทุกๆท่าน พอดีผมอยากสร้าง pivot table ด้วย VBA แบบอัตโนมัติ โดยให้สร้าง pivot table ตามชื่อชีทครับ เช่น ถ้าผมลบชีทนั้นทิ้งแล้วสร้างชีทใหม่โดยใช้ชื่อชีทเดิมข้อมูลด้านในก็จะถูกนำมาสร้าง pivot table อยู่ พอจะมีวิธีมั้ยครับ
ตามไฟล์ตัวอย่างที่ผมแนบมานะครับ
ผมจะให้ชีท B นำข้อมูลในชีท A มาสร้าง pivot table โดยถ้าชีท A ถูกลบทิ้งแล้วสร้างชีทใหม่ที่มีชื่อว่าชีท A ข้อมูลด้านในก็จะยังถูกนำมาสร้าง Pivot table ในชีท B อยู่ครับ
ตัวอย่าง Code ตามที่ผมได้ศึกษาแล้วลองเขียนมาครับ (แต่ก็ยังไม่ได้)
ตามไฟล์ตัวอย่างที่ผมแนบมานะครับ
ผมจะให้ชีท B นำข้อมูลในชีท A มาสร้าง pivot table โดยถ้าชีท A ถูกลบทิ้งแล้วสร้างชีทใหม่ที่มีชื่อว่าชีท A ข้อมูลด้านในก็จะยังถูกนำมาสร้าง Pivot table ในชีท B อยู่ครับ
ตัวอย่าง Code ตามที่ผมได้ศึกษาแล้วลองเขียนมาครับ (แต่ก็ยังไม่ได้)
Code: Select all
Sub pivot_table()
Dim pt_cache As PivotCache
Dim pt_table As PivotTable
Set pt_cache = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=Worksheets("A").Range("A1:I7000"))
Set pt_table = pt_cache.CreatePivotTable(TableDestination:=Worksheets("B").Range("A1"), TableName:="PivotTable1")
With pt_table
.PivotFields("Item").Orientation = xlRowField
.PivotFields("Oty.").Orientation = xlDataField
.PivotFields("Day").Orientation = xlColumnField
End With
End Sub