Page 1 of 1
สามารถ inset Pivot Table ครั้งเดียวหลายชีทพร้อมกันได้หรือไม่
Posted: Tue Oct 18, 2016 11:32 am
by p_d
เรียน อาจารย์และท่านผู้รู้
ดิฉันอยากทราบว่าพอจะมีวิธี insert Pivot Table ครั้งเดียวหลายชีทพร้อม ๆ กันได้หรือไม่ (1 ชีท/Pivot) เพราะต้องทำรายงานของทุกเดือนซึ่งมีคอลัมภ์จำนวนเท่ากันเหมือนกัน แต่จำนวนแถวแต่ละเดือนไม่เท่ากันค่ะ
ดิฉันแนบไฟล์ตัวอย่างมาด้วยค่ะ
ขอบคุณค่ะ
p_d
Re: สามารถ inset Pivot Table ครั้งเดียวหลายชีทพร้อมกันได้หรือไม่
Posted: Tue Oct 18, 2016 5:25 pm
by snasui
การทำเช่นนั้นต้องอาศัย VBA ลองเขียนมาเองก่อน ติดตรงไหนค่อยถามกันต่อครับ
Re: สามารถ inset Pivot Table ครั้งเดียวหลายชีทพร้อมกันได้หรือไม่
Posted: Wed Oct 19, 2016 8:35 am
by p_d
เรียน อาจารย์
ด้านล่างเป็น code ที่ได้จากการ record macro ในชีทแรก ซึ่งสิ่งที่ต้องแก้คือ จำนวนแถวและชื่อแต่ละชีท (อาจรวมถึงชื่อ PivotTable ด้วยใช่ไหมคะ) แต่ไม่รู้ว่าจะใช้คำสั่งใด รบกวนอาจารย์แนะนำด้วยค่ะ
Code: Select all
Sub Pivot1()
' Pivot1 Macro
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"201609!R1C1:R8C4", Version:=xlPivotTableVersion14).CreatePivotTable _
TableDestination:="201609!R1C8", TableName:="PivotTable1", DefaultVersion _
:=xlPivotTableVersion14
Sheets("201609").Select
Cells(1, 8).Select
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Material")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
"PivotTable1").PivotFields("Quantity"), "Sum of Quantity", xlSum
End Sub
ขอบคุณค่ะ
p_d
Re: สามารถ inset Pivot Table ครั้งเดียวหลายชีทพร้อมกันได้หรือไม่
Posted: Wed Oct 19, 2016 6:13 pm
by snasui
ตัวอย่างการปรับ Code ครับ
Code: Select all
Sub Pivot1()
Dim pvCount As Integer
Dim pvName As String
Dim sh As Worksheet
For Each sh In Worksheets
pvCount = sh.PivotTables.Count
pvName = "Pvt_" & pvCount + 1
sh.Range("h1").CurrentRegion.Clear
sh.Parent.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
sh.Range("a1").CurrentRegion, Version:=xlPivotTableVersion14).CreatePivotTable _
TableDestination:=sh.Range("h1"), TableName:=pvName, DefaultVersion _
:=xlPivotTableVersion14
With sh.PivotTables(pvName).PivotFields("Material")
.Orientation = xlRowField
.Position = 1
End With
sh.PivotTables(pvName).AddDataField sh.PivotTables( _
pvName).PivotFields("Quantity"), "Sum of Quantity", xlSum
Next sh
End Sub
Re: สามารถ inset Pivot Table ครั้งเดียวหลายชีทพร้อมกันได้หรือไม่
Posted: Thu Oct 20, 2016 11:24 am
by p_d
ได้แล้วค่ะ ขอบคุณมาก ๆ เลยนะคะอาจารย์
p_d