ตาราง เป็นหนึ่งในออบเจกต์ที่สำคัญและใช้กันอย่างแพร่หลายมากที่สุดในขณะที่ทำงานกับ VBA ใน Excel ในบทความนี้ ฉันจะแสดงให้คุณเห็นว่าคุณสามารถใช้ ตารางของ Excel ได้อย่างไร ด้วย VBA .
9 วิธีในการใช้ตาราง Excel กับ VBA
ตารางคือชุดข้อมูลชนิดพิเศษใน Excel โดยที่แถวแรกมีส่วนหัว
ใน VBA อยู่ในหมวด ListObject . ต่อไปนี้เป็นวิธีที่คุณสามารถใช้ ตาราง Excel ของ Excel ใน VBA .
1. การสร้างตารางด้วย VBA ใน Excel
ก่อนอื่น เราจะมาเรียนรู้วิธีสร้าง ตาราง ด้วย VBA ใน Excel
ในการสร้าง ตาราง ด้วย VBA ใน Excel ก่อนอื่น คุณต้องประกาศ ตาราง เป็น ListObject .
จากนั้นคุณต้องแทรก ตาราง ในช่วงที่ต้องการ
Dim Table1 as ListObject
Set Table1 = ActiveSheet.ListObjects.Add(xlSrcRange, Range("B4:D13"), , xlYes)
[ที่นี่ ตารางที่ 1 เป็นชื่อของ ตาราง ใน VBA และ B4:D13 คือช่วงในแผ่นงานที่ใช้งานอยู่ซึ่งฉันต้องการตาราง คุณใช้อะไรก็ได้ที่คุณชอบ]
เรียกใช้รหัสนี้ มันจะสร้าง ตาราง ในช่วง B4:D13 ของแผ่นงานที่ใช้งานอยู่
ตอนนี้หากต้องการ คุณสามารถเปลี่ยนชื่อตารางเป็นอะไรก็ได้ที่คุณชอบ
Table1.Name = "MyTable"
มันจะเปลี่ยนชื่อตารางเป็น MyTable
อ่านเพิ่มเติม: สร้างตารางใน Excel โดยใช้ทางลัด
2. อ้างถึงตาราง Excel ด้วย VBA
เราได้เรียนรู้การสร้างตาราง ด้วย VBA ใน Excel
ตอนนี้อ้างถึง ตาราง สร้างไว้แล้วใน Excel คุณต้องประกาศ ตาราง . ก่อน เป็น ListObject .
จากนั้นอ้างอิงถึง ตาราง ด้วยชื่อที่มีอยู่ใน Excel
Dim Table1 As ListObject
Set Table1 = ActiveSheet.ListObjects("MyTable")
หมายถึงตาราง “MyTable” ใน Excel ชื่อ Table1 .
อ่านเพิ่มเติม: วิธีใช้การอ้างอิงตาราง Excel
3. การป้อนค่าในตารางด้วย VBA ใน Excel
ในการป้อนค่าภายใน ตาราง ก่อนอื่น คุณต้องอ้างอิงถึง ตาราง .
จากนั้น คุณต้องป้อนค่าในเซลล์โดยใช้ Range.Cells คุณสมบัติของ VBA .
Dim Table1 As ListObject
Set Table1 = ActiveSheet.ListObjects("MyTable")
Table1.Range.Cells(2, 1) = "A Tale of Two Cities"
เรียกใช้รหัสนี้ มันจะใส่สตริง “A Tale of Two Cities” ใน ที่ 2 แถวและ ที่ 1 คอลัมน์ของตาราง MyTable ของแผ่นงานที่ใช้งานอยู่
4. การแทรกแถวและคอลัมน์ลงในตารางด้วย VBA ใน Excel
ในการแทรกแถวหรือคอลัมน์ใน ตาราง ด้วย VBA ขั้นแรกให้ดูที่ ตาราง .
จากนั้นให้เพิ่มแถว ListRows.Add ทรัพย์สิน
Dim Table1 As ListObject
Set Table1 = ActiveSheet.ListObjects("MyTable")
Table1.ListRows.Add
จะเพิ่มแถวใหม่ต่อท้ายตาราง MyTable .
หรือหากต้องการเพิ่มคอลัมน์ ให้แทรก ListColumns.Add ทรัพย์สิน
Dim Table1 As ListObject
Set Table1 = ActiveSheet.ListObjects("MyTable")
Table1.ListColumns.Add
จะเพิ่มคอลัมน์ใหม่ทางด้านขวาของตาราง MyTable .
อีกครั้ง เพื่อเพิ่มแถวหรือคอลัมน์ในตำแหน่งเฉพาะของ ตาราง ระบุตำแหน่งภายใน ListRows.Add หรือ ListColumns.Add ทรัพย์สิน
Dim Table1 As ListObject
Set Table1 = ActiveSheet.ListObjects("MyTable")
Table1.ListRows.Add (4)
มันเพิ่มแถวใหม่เป็น ที่ 4 แถวของตาราง MyTable .
เช่นเดียวกับการเพิ่มคอลัมน์ใหม่
อ่านเพิ่มเติม: วิธีการแทรกหรือลบแถวและคอลัมน์จากตาราง Excel
5. การอ่านข้อมูลจากตารางด้วย VBA
หากต้องการอ่านข้อมูลใดๆ จากตารางที่มี VBA ให้ใช้ Range.Cells คุณสมบัติของ VBA .
Dim Table1 As ListObject
Set Table1 = ActiveSheet.ListObjects("MyTable")
MsgBox Table1.Range.Cells(3, 1)
รันโค้ดก็จะแสดงค่าตั้งแต่ 3 แถวและ ที่ 1 คอลัมน์ของตาราง MyTable . มันคือ กฎสี่สิบแห่งความรัก .
การอ่านที่คล้ายกัน
- VBA เพื่อรีเฟรช Pivot Table ใน Excel (5 ตัวอย่าง)
- วิธีการรีเฟรชตาราง Pivot ทั้งหมดด้วย VBA (4 วิธี)
- แก้ไข Pivot Table ใน Excel (5 วิธี)
- วิธีอัปเดตช่วงตาราง Pivot (5 วิธีที่เหมาะสม)
6. วนรอบแถวหรือคอลัมน์ของตารางด้วย VBA
เมื่อต้องการวนรอบแต่ละแถวของตารางด้วย VBA ให้ใช้ ListRows.Count ทรัพย์สิน
Dim Table1 As ListObject
Set Table1 = ActiveSheet.ListObjects("MyTable")
For i = 1 To Table1.ListRows.Count
Table1.ListRows(i).Range.Select
Next i
มันจะวนซ้ำในแต่ละแถวของตาราง Table1 แล้วเลือกเลย
ในทำนองเดียวกัน เมื่อต้องการวนซ้ำในแต่ละคอลัมน์ของตาราง ให้ใช้ ListColumns.Count ทรัพย์สิน
7. มองหาค่าเฉพาะในตาราง
เมื่อต้องการค้นหาค่าเฉพาะในแถวหรือคอลัมน์ของตารางที่มี VBA ให้ใช้ DataBodyRange.Rows.Find หรือ DataBodyRange.Columns.Find คุณสมบัติของ VBA .
Dim Table1 As ListObject
Set Table1 = ActiveSheet.ListObjects("MyTable")
Set Value = Table1.DataBodyRange.Columns(1).Find("Mother", LookAt:=xlWhole)
MsgBox Value
มันจะมองหาค่า “แม่” ในคอลัมน์ที่ 1 ของตาราง MyTable และคืนค่าหากพบ
8. การปรับขนาดตารางด้วย VBA ใน Excel
ในการปรับขนาดตารางเป็นรูปร่างใหม่ ก่อนอื่นให้ตั้งค่า ช่วง ซึ่ง ตาราง จะถูกปรับขนาด
จากนั้นปรับขนาด ตาราง ไปที่ช่วง .
Dim Table1 As ListObject
Set Table1 = ActiveSheet.ListObjects("MyTable")
Dim Rng As Range
Set Rng = Range("B4:C8")
Table1.Resize Rng
ขั้นแรกให้กำหนด ช่วง เป็น B4:C8 แล้วปรับขนาดตาราง MyTable ไปยังช่วงใหม่นั้น .
9. การลบตารางด้วย VBA ใน Excel
ในการลบตารางด้วย VBA ให้ใช้ ลบ คุณสมบัติของ VBA .
Dim Table1 As ListObject
Set Table1 = ActiveSheet.ListObjects("MyTable")
Table1.Delete
มันจะลบตาราง MyTable จากแผ่นงานที่ใช้งานอยู่
สิ่งที่ควรจำ
ตารางคือ ListObject ใน VBA . แต่ถ้าคุณต้องการเข้าถึงเป็น ช่วง . ง่ายๆ วัตถุ ใช้ Table.Range คุณสมบัติของ VBA . มันจะคืนค่าตารางเป็น ช่วง วัตถุ และคุณจะสามารถเข้าถึงคุณสมบัติทั้งหมดของ ช่วง วัตถุของ VBA .
บทสรุป
เมื่อใช้วิธีการเหล่านี้ คุณสามารถใช้ตารางที่มี VBA . คุณมีคำถามใด ๆ หรือไม่? สนใจสอบถามได้นะคะ
อ่านเพิ่มเติม
- วิธีการรีเฟรช Pivot Table อัตโนมัติใน Excel (2 วิธี)
- จัดกลุ่มคอลัมน์ใน Excel Pivot Table (2 วิธี)
- การจัดกลุ่มแบบกำหนดเองของ Pivot Table:มี 3 เกณฑ์
- ใช้สูตรในตาราง Excel อย่างมีประสิทธิภาพ (มี 4 ตัวอย่าง)