:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

รบกวนสอบถามวิธีสร้างpivot table ด้วย VBA แบบอัตโนมัติ

Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่

Post a reply


This question is a means of preventing automated form submissions by spambots.
Smilies
:D :thup: :cp: :flw: :rz: :sg: :tt: :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :arrow: :ard: :arl: :aru: :| :mrgreen: :geek: :ugeek:

BBCode is ON
[img] is ON
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: รบกวนสอบถามวิธีสร้างpivot table ด้วย VBA แบบอัตโนมัติ

Re: รบกวนสอบถามวิธีสร้างpivot table ด้วย VBA แบบอัตโนมัติ

#5

by manusin » Wed Sep 11, 2019 8:45 am

ขอบคุณอาจารย์มากๆครับ :D :D

Re: รบกวนสอบถามวิธีสร้างpivot table ด้วย VBA แบบอัตโนมัติ

#4

by snasui » Tue Sep 10, 2019 8:09 pm

:D UsedRange หมายถึงเซลล์ที่มีการใช้งานทั้งหมดในชีตนั้น ๆ ครับ

ความรู้ต่าง ๆ เกี่ยวกับ VBA จะมีครบถ้วนสมบูรณ์อยู่ในเว็บของ Microsoft ครับ :arrow: https://docs.microsoft.com/en-us/office ... view/excel แต่จะค่อนข้างยากต่อการทำความเข้าใจสำหรับมือใหม่ ต้องค่อย ๆ ศึกษา การสอบถามปัญหาไปที่ฟอรัมใด ๆ ก็ทำให้เราได้ทราบเพิ่มขึ้นครับ

ตำราต่าง ๆ อาจจะเขียนได้ไม่ครบทุก Object, Event, Property, Method ของ Excel เพราะมีจำนวนมาก ทำได้เพียงแค่ยกตัวอย่างมาบางส่วนครับ

Re: รบกวนสอบถามวิธีสร้างpivot table ด้วย VBA แบบอัตโนมัติ

#3

by manusin » Tue Sep 10, 2019 10:51 am

ได้ตามที่ต้องการแล้วครับอาจารย์ ขอบคุณครับ :D

ขอสอบถามอีกหน่อยได้มั้ยครับ ตอนนี้ผมเป็นนักศึกษาอยู่อยากจะศึกษาเกี่ยวกับคำสั่งต่างๆใน VBA เช่น คำสั่ง UsedRange หมายถึงอะไร ใช้แบบไหน ประมาณนี้ครับ พอดีผมซื้อหนังสือมาอ่านเล่มนึงแต่เนื้อหาในหนังสือไม่มีอะไรพวกนี้เลยครับ อาจารย์พอมีหนังสือหรือเว็บแนะนำเกี่ยวกับคำสั่งโดยเฉพาะเลยมั้ยครับ

:? :? :?

Re: รบกวนสอบถามวิธีสร้างpivot table ด้วย VBA แบบอัตโนมัติ

#2

by snasui » Mon Sep 09, 2019 7:51 pm

:D ให้ Clear ข้อมูลของชีต 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").UsedRange)
    Worksheets("B").UsedRange.Clear 'Add this line
    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

รบกวนสอบถามวิธีสร้างpivot table ด้วย VBA แบบอัตโนมัติ

#1

by manusin » Mon Sep 09, 2019 9:10 am

สวัสดีครับทุกๆท่าน พอดีผมอยากสร้าง pivot table ด้วย VBA แบบอัตโนมัติ โดยให้สร้าง pivot table ตามชื่อชีทครับ เช่น ถ้าผมลบชีทนั้นทิ้งแล้วสร้างชีทใหม่โดยใช้ชื่อชีทเดิมข้อมูลด้านในก็จะถูกนำมาสร้าง pivot table อยู่ พอจะมีวิธีมั้ยครับ

ตามไฟล์ตัวอย่างที่ผมแนบมานะครับ
ผมจะให้ชีท 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
Attachments
test pivot table.xlsm
(382.73 KiB) Downloaded 14 times

Top