สารบัญ
ในบทความนี้ ฉันจะแสดงวิธีเข้าถึงการอ้างอิงเซลล์ใน VBA ใน Excel คุณจะได้เรียนรู้วิธีเข้าถึงเซลล์เดียวและหลายเซลล์พร้อมกัน
ดาวน์โหลดแบบฝึกหัดแบบฝึกหัด
ดาวน์โหลดแบบฝึกหัดเล่มนี้เพื่อฝึกใช้งานในขณะที่คุณกำลังอ่าน บทความนี้
การอ้างอิงเซลล์ VBA.xlsm
8 วิธีอ้างอิงการอ้างอิงเซลล์ใน Excel VBA
ที่นี่เรามีชุดข้อมูลที่มี ชื่อหนังสือ , ประเภทหนังสือ และ ราคา ของหนังสือบางเล่มของร้านหนังสือชื่อ Martin Bookstore
ชุดข้อมูลอยู่ในช่วง B4:D13 ของแผ่นงาน
วันนี้ วัตถุประสงค์ของเราคือการเรียนรู้วิธีอ้างอิงการอ้างอิงเซลล์ของ ชุดข้อมูลนี้ด้วย VBA
นี่คือ 8 วิธีที่ดีที่สุดในการอ้างถึงการอ้างอิงเซลล์ด้วย VBA ใน Excel
1. อ้างอิงการอ้างอิงเซลล์โดยใช้วัตถุช่วงใน VBA ใน Excel
ก่อนอื่น คุณสามารถอ้างถึงการอ้างอิงเซลล์โดยใช้วัตถุ ช่วง ของ VBA .
คุณสามารถอ้างถึงทั้งเซลล์เดียวและช่วงของเซลล์ด้วยวัตถุ ช่วง
ตัวอย่างเช่น ในการเข้าถึงเซลล์เดียว B4 ใช้บรรทัดรหัส:
Dim Cell_Reference As Range
Set Cell_Reference = Range("B4")
โค้ดต่อไปนี้เลือกเซลล์ B4 .
จะเลือกเซลล์ B4 ในแผ่นงานที่ใช้งานอยู่
ในทำนองเดียวกัน คุณสามารถเข้าถึงช่วงของเซลล์ในส่วนนี้ทาง
Dim Cell_Reference As Range
Set Cell_Reference = Range("B4:D13")
รหัสต่อไปนี้เลือกช่วง B4 :D13 .
จะเลือกช่วงของเซลล์ B4:D13 .
<3
หมายเหตุ : คุณสามารถใช้วัตถุ ช่วง ได้โดยตรงโดยไม่ต้องประกาศก่อน เช่น:
Range("B4:D13").Select
นอกจากนี้ ถ้าคุณต้องการเข้าถึงเซลล์ใดๆ ของเวิร์กชีตที่ไม่ได้ใช้งาน ให้ใช้ชื่อของเวิร์กชีตก่อนวัตถุ ช่วง
ตัวอย่างเช่น เมื่อต้องการเข้าถึงเซลล์ B4 จาก Sheet2 ใช้:
Worksheets("Sheet2").Range("B4:D13")
2. อ้างอิงการอ้างอิงเซลล์โดยใช้หมายเลขดัชนีใน VBA ใน Excel
คุณยังสามารถอ้างอิงถึงการอ้างอิงเซลล์โดยใช้หมายเลขดัชนีได้อีกด้วย แต่ในวิธีนี้ คุณสามารถอ้างถึงเซลล์เดียวเท่านั้น
ตัวอย่างเช่น เมื่อต้องการเข้าถึงเซลล์ที่มีหมายเลขแถว 4 และหมายเลขคอลัมน์ 2 ( B4 ), ใช้:
Cells(4, 2))
รหัสต่อไปนี้เลือกเซลล์ B4 ของแผ่นงานที่ใช้งานอยู่อีกครั้ง
จะเลือกเซลล์ B4 .
หมายเหตุ: เมื่อต้องการเข้าถึงเซลล์ใดๆ ของเวิร์กชีตที่ไม่ได้ใช้งาน ให้ใช้ชื่อของเวิร์กชีตก่อนการอ้างอิงเซลล์
ตัวอย่างเช่น:
Worksheets("Sheet2").Cells(4, 2)
[ เหมือนกับวิธีที่ 1 ] .
3. อ้างอิงการอ้างอิงเซลล์แบบสัมพัทธ์กับเซลล์อื่นใน VBA ใน Excel
คุณยังสามารถอ้างอิงการอ้างอิงเซลล์โดยสัมพันธ์กับเซลล์อื่นใน VBA คุณต้องใช้ ฟังก์ชัน Offset ของ VBA สำหรับนี้
หากต้องการเข้าถึงเซลล์ 1 แถวลงและ 2 คอลัมน์ด้านขวาของเซลล์ B4 (D5) ให้ใช้:
Range("B4").Offset(1, 2)
รหัสต่อไปนี้เลือกเซลล์ D5 ของเวิร์กชีตที่ใช้งานอยู่
It' จะเลือกเซลล์ D5 .
หมายเหตุ: เมื่อต้องการอ้างถึงเซลล์ใดๆ ของเวิร์กชีตที่ไม่ได้ใช้งาน ให้ใช้ชื่อของ แผ่นงานก่อนการอ้างอิงเซลล์
ตัวอย่าง:
Worksheets("Sheet2").Range("B4").Offset(1, 2)
[ เหมือนกับวิธีที่ 1 และ 2 ] .
4. อ้างอิงถึงการอ้างอิงเซลล์โดยใช้สัญลักษณ์ทางลัดใน VBA ใน Excel
มีสัญลักษณ์ทางลัดที่พร้อมใช้งานเพื่อเข้าถึงการอ้างอิงเซลล์ใดๆ ใน VBA คุณสามารถอ้างถึงทั้งเซลล์เดียวและหลายเซลล์ได้ด้วยวิธีนี้
หากต้องการเข้าถึงเซลล์ B4 ให้ใช้:
[B4]
หรือหากต้องการเข้าถึงช่วง B4:D13 ให้ใช้:
[B4:D13]
รหัสต่อไปนี้ เลือกช่วง B4:D13 .
จะเป็นการเลือกช่วง B4:D13 .
หมายเหตุ: เมื่อต้องการอ้างถึงเซลล์ใดๆ ของเวิร์กชีตที่ไม่ได้ใช้งาน ให้ใช้ชื่อของเวิร์กชีตก่อนการอ้างอิงเซลล์
ตัวอย่าง:
Worksheets("Sheet2").[B4:D13]
[ เหมือนกับวิธีที่ 1, 2 และ 3 ] .
คล้ายกัน การอ่าน:
- วิธีล็อกเซลล์ในสูตร Excel (2 วิธี)
- ทางลัดการอ้างอิงเซลล์แบบสัมบูรณ์ใน Excel (4 ประโยชน์ ตัวอย่าง)
- วิธีทำให้เซลล์คงที่ในสูตร Excel (4 วิธีง่ายๆ)
- ใช้การอ้างอิงเซลล์ในสูตร Excel (3 วิธี)
5. อ้างอิงถึงช่วงที่มีชื่อใน VBA ใน Excel
คุณสามารถอ้างอิงถึง ช่วงที่มีชื่อ ด้วย VBA ใน Excel
มาตั้งชื่อกันเถอะ ช่วง B4:D13 ของแผ่นงานที่ใช้งานเป็น Book_List.
ตอนนี้เราสามารถอ้างถึง ช่วงที่ตั้งชื่อ ตามบรรทัดของรหัส:
Range("Book_List")
รหัสต่อไปนี้เลือกช่วง Book_List ( B4:D13 ).
จะเป็นการเลือกช่วง Book_List .
หมายเหตุ: หากต้องการเข้าถึงเซลล์ใดๆ ของเวิร์กชีตที่ไม่ได้ใช้งาน ให้ใช้ชื่อของเวิร์กชีตก่อนการอ้างอิงเซลล์
ตัวอย่างเช่น:
Worksheets("Sheet2").Range("Book_List")
[ เหมือนกับวิธีที่ 1, 2, 3 และ 4 ] .
6. อ้างอิงถึงหลายช่วงใน VBA ใน Excel
คุณยังสามารถอ้างอิงถึงหลายช่วงใน VBA ใน Excel
หากต้องการเข้าถึงช่วง B4: D5 , B7:D8 และ B10:D11 ใช้:
Range("B4:D5,B7:D8,B10:D11")
จะเป็นการเลือกหลายช่วงด้วยกัน
นอกจากนี้ คุณสามารถใช้คุณสมบัติ Union ของ VBA เพื่อเข้าถึงหลายช่วงด้วยกัน
Union(Range("B4:D5"), Range("B7:D8"), Range("B10:D11"))
หรือคุณสามารถเข้าถึงหลาย ช่วงที่มีชื่อ พร้อมกัน<3 Range("Named_Range_1,Named_Range_2")
นอกจากนี้ ใส่ชื่อเวิร์กชีตไว้ข้างหน้าเวิร์กชีตที่ไม่ได้ใช้งาน
ตัวอย่างเช่น:
Worksheets("Sheet2").Range("B4:D5,B7:D8,B10:D11")
[ เหมือนกับวิธีที่ 1, 2, 3, 4 และ 5 ]
7. อ้างถึงแถวและคอลัมน์ใน VBA ใน Excel
คุณยังสามารถอ้างถึงหรือแถวหรือคอลัมน์เพิ่มเติมใน VBA ใน Excel
หากต้องการเข้าถึงแถว 4 ให้ใช้:
Rows (4)
จะเลือกทั้งแถว 4
ในทำนองเดียวกัน คอลัมน์ (4) จะเข้าถึงทั้งคอลัมน์ 4
และหากต้องการเข้าถึงหลายแถวหรือหลายคอลัมน์พร้อมกัน ให้ใช้คุณสมบัติ Union ของ VBA .
หากต้องการเข้าถึงแถว 4, 6, 8, และ 10 พร้อมกัน ให้ใช้:
Union(Rows(4), Rows(6), Rows(8), Rows(10))
จะเลือกทั้งแถว 4, 6, 8 และ 10 .
หมายเหตุ: เพิ่มชื่อเวิร์กชีตข้างหน้าในกรณีที่ไม่ใช่เวิร์กชีต
ตัวอย่าง:
Worksheets("Sheet2").Rows (4)
[ เหมือนกับวิธีที่ 1, 2, 3, 4, 5 และ 6 ]
8. อ้างถึงแผ่นงานทั้งหมดใน VBA ใน Excel
สุดท้ายนี้ ฉันจะแสดงให้คุณเห็นถึงแผ่นงานทั้งหมด ในการเข้าถึงเวิร์กชีตทั้งหมดใน VBA ให้ใช้:
Cells
หรือเพื่ออ้างถึงเวิร์กชีตที่ไม่ได้ใช้งาน (ตัวอย่างเช่น Sheet2 ) ให้ใช้:
Worksheet("Sheet2").Cells
จะเป็นการเลือกเวิร์กชีตทั้งหมด Sheet2
เนื้อหาที่เกี่ยวข้อง: ที่อยู่เซลล์สัมพัทธ์และสัมบูรณ์ในสเปรดชีต
สิ่งที่ต้องจำ
- ในการเข้าถึงเซลล์ของเวิร์กชีตที่ใช้งานอยู่หนึ่งเซลล์ขึ้นไป คุณอาจระบุชื่อเวิร์กชีตนำหน้าหรือไม่ก็ได้ แต่หากต้องการเข้าถึงเซลล์ของเวิร์กชีตที่ไม่ได้ใช้งาน คุณต้องระบุชื่อเวิร์กชีตใน ด้านหน้าของการอ้างอิงเซลล์
- แม้คุณจะทำได้เข้าถึงเซลล์ของเวิร์กบุ๊กที่ไม่ได้ใช้งานใน VBA ในกรณีนี้ คุณต้องระบุทั้งชื่อเวิร์กบุ๊กและ ชื่อเวิร์กชีต ข้างหน้าการอ้างอิงเซลล์
บทสรุป
เมื่อใช้วิธีการเหล่านี้ คุณสามารถอ้างถึงการอ้างอิงเซลล์ใดก็ได้ด้วย VBA ใน Excel คุณมีคำถามใดๆ? อย่าลังเลที่จะถามเรา