Page 1 of 1

ปัญหาทำpivat table จากข้อมูลที่เป็นไดนามิก

Posted: Sun Aug 31, 2014 9:17 pm
by nutpochan
โค๊ดก่อนนะครับ

Code: Select all

Sub Macro1()
'
' Macro1 แมโคร
'

'
    Range("A1").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Sheets.Add
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "Sheet2!R1C1:R42C6", Version:=xlPivotTableVersion14).CreatePivotTable _
        TableDestination:="Sheet4!R3C1", TableName:="PivotTable1", DefaultVersion _
        :=xlPivotTableVersion14
    Sheets("Sheet4").Select
    Cells(3, 1).Select
    With ActiveSheet.PivotTables("PivotTable1").PivotFields("ที่")
        .Orientation = xlRowField
        .Position = 1
    End With
    ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
        "PivotTable1").PivotFields("มหาลัย"), "นับจำนวน ของ มหาลัย", xlCount
    ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
        "PivotTable1").PivotFields("ย่อ"), "นับจำนวน ของ ย่อ", xlCount
    With ActiveSheet.PivotTables("PivotTable1").PivotFields("เกิด")
        .Orientation = xlColumnField
        .Position = 2
    End With
End Sub

ปัญหาก็คือ

Code: Select all

    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "Sheet2!R1C1:R42C6", Version:=xlPivotTableVersion14).CreatePivotTable _
        TableDestination:="Sheet4!R3C1", TableName:="PivotTable1", DefaultVersion _
        :=xlPivotTableVersion14
เพราะข้อมูลจริงๆอยากได้ที่เป็นไดนาทิกไม่เหมือนกันทุกวัน แต่ในโค๊ดมันเป็น R1C1:R42C6 ซึ่งไม่ใช่นานามิก เลยอยากรู้ว่าต้องแก้ยังไงครับ

Re: ปัญหาทำpivat table จากข้อมูลที่เป็นไดนามิก

Posted: Mon Sep 01, 2014 11:02 am
by nutpochan
อาจารย์ช่วยตอบหน่อยครับ

Re: ปัญหาทำpivat table จากข้อมูลที่เป็นไดนามิก

Posted: Mon Sep 01, 2014 4:54 pm
by snasui
nutpochan wrote:อาจารย์ช่วยตอบหน่อยครับ
:twisted: ระมัดระวังในการเขียนลักษณะนี้และไม่ควรเปิดกระทู้เพื่อทีจะแจ้งให้ตอบกระทู้ใด ๆ เพราะไม่จำเป็นต้องทำเช่นนั้น

ผมจะตอบก็ต่อเมื่อสะดวกในการตอบ ไม่จำเป็นต้องเขียนข้อมูลใดที่ไม่เกียวกับการอธิบายในสิ่งที่ต้องการเพิ่มเติม เพียงแต่รอคำตอบเท่านั้น

กระทู้ที่เปิดไว้เพื่อแจ้งให้ตอบกระทู้นี้ผมลบทิ้งไปแล้ว ผมไม่อนุญาตให้เปิดกระทู้ในลักษณะนั้น ไม่ควรกระทำอีกครับ

สำหรับที่ถามมา ตัวอย่าง Code ตามด้านล่างครับ

Code: Select all

Sub Macro1()
    Dim dataSource As Range
    With Sheets("Sheet2")
        Set dataSource = .Range("a1", .Range("f" & .Rows.Count).End(xlUp))
    End With
    Sheets.Add
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        dataSource, Version:=xlPivotTableVersion14).CreatePivotTable _
        TableDestination:=ActiveSheet.Range("a3"), TableName:="PivotTable1", DefaultVersion _
        :=xlPivotTableVersion14
    With ActiveSheet.PivotTables("PivotTable1").PivotFields("ที่")
        .Orientation = xlRowField
        .Position = 1
    End With
    ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
        "PivotTable1").PivotFields("มหาลัย"), "นับจำนวน ของ มหาลัย", xlCount
    ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
        "PivotTable1").PivotFields("ย่อ"), "นับจำนวน ของ ย่อ", xlCount
    With ActiveSheet.PivotTables("PivotTable1").PivotFields("เกิด")
        .Orientation = xlColumnField
        .Position = 2
    End With
End Sub

Re: ปัญหาทำpivat table จากข้อมูลที่เป็นไดนามิก

Posted: Mon Sep 01, 2014 8:51 pm
by nutpochan
ขอโทษจริงๆครับ นึกว่าอาจารย์ลืมกระทู้ผม ขอบคุณจริงๆครับ :P

Re: ปัญหาทำpivat table จากข้อมูลที่เป็นไดนามิก

Posted: Wed Sep 03, 2014 6:56 am
by nutpochan

Code: Select all

    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        dataSource, Version:=xlPivotTableVersion14).CreatePivotTable _
        TableDestination:=ActiveSheet.Range("a3"), TableName:="PivotTable1", DefaultVersion _
        :=xlPivotTableVersion14

ตรงที่ TableVersion14 vsrsionของpivottable จะแตกต่างกันไปของแต่ละเครื่องใช้ไหมครับ ตอนผมเอาไปใช้มันเป็นดีบัก แต่พอมาไล่ดูอีกที่ปรากฏว่าแต่ละเครื่องเวอร์ชั่นไม่เหมือนกัน

Re: ปัญหาทำpivat table จากข้อมูลที่เป็นไดนามิก

Posted: Wed Sep 03, 2014 9:30 am
by snasui
:D ลองปรับโดยเอา Version ออกไปแล้วทดสอบดู ตัวอย่าง Code ตามด้านล่างครับ

Code: Select all

ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        dataSource).CreatePivotTable _
        TableDestination:=ActiveSheet.Range("a3"), TableName:="PivotTable1"

Re: ปัญหาทำpivat table จากข้อมูลที่เป็นไดนามิก

Posted: Sun Sep 28, 2014 2:21 am
by nutpochan
ใช้ได้ผลขอบคุณครับ