วัตถุช่วง Excel VBA
ช่วง VBA คืออะไร
VBA Range Object แสดงถึงเซลล์หรือหลายเซลล์ในแผ่นงาน Excel ของคุณ เป็นวัตถุที่สำคัญที่สุดของ Excel VBA โดยใช้วัตถุช่วง Excel VBA คุณสามารถอ้างถึง
- เซลล์เดียว
- แถวหรือคอลัมน์ของเซลล์
- การเลือกเซลล์
- ช่วงสามมิติ
ดังที่เราได้กล่าวไว้ในบทช่วยสอนก่อนหน้านี้ VBA นั้นใช้ในการบันทึกและเรียกใช้ Macro แต่ VBA ระบุได้อย่างไรว่าจำเป็นต้องดำเนินการข้อมูลจากแผ่นงาน นี่คือจุดที่ VBA Range Objects มีประโยชน์
รู้เบื้องต้นเกี่ยวกับการอ้างอิงวัตถุใน VBA
การอ้างอิงวัตถุช่วง VBA ของ Excel และตัวระบุวัตถุ
- ตัวระบุวัตถุ: ใช้สำหรับอ้างอิงวัตถุ โดยจะระบุสมุดงานหรือแผ่นงานที่คุณอ้างถึง
เพื่อจัดการค่าของเซลล์เหล่านี้ อสังหาริมทรัพย์ และ วิธีการ ถูกนำมาใช้
- อสังหาริมทรัพย์: คุณสมบัติจัดเก็บข้อมูลเกี่ยวกับวัตถุ
- วิธีการ: วิธีการคือการกระทำของวัตถุที่มันจะดำเนินการ ออบเจ็กต์ช่วงสามารถดำเนินการต่างๆ เช่น เลือก คัดลอก ล้าง เรียงลำดับ ฯลฯ
VBA ปฏิบัติตามรูปแบบลำดับชั้นของวัตถุเพื่ออ้างอิงวัตถุใน Excel คุณต้องปฏิบัติตามโครงสร้างต่อไปนี้ โปรดจำไว้ว่า .dot ด้านบนนี้เชื่อมต่อวัตถุในแต่ละระดับที่แตกต่างกัน
แอปพลิเคชัน สมุดงาน แผ่นงาน ช่วง
ออบเจ็กต์เริ่มต้นมีสองประเภทหลักๆ
วิธีอ้างอิงถึง Excel VBA Range Object โดยใช้คุณสมบัติ Range
คุณสมบัติช่วงสามารถนำไปใช้กับวัตถุสองประเภทที่แตกต่างกัน
- วัตถุแผ่นงาน
- วัตถุช่วง
ไวยากรณ์สำหรับคุณสมบัติช่วง
- คำหลัก "ช่วง"
- วงเล็บที่ตามหลังคำสำคัญ
- ช่วงเซลล์ที่เกี่ยวข้อง
- คำอ้างอิง (" ")
Application.Workbooks("Book1.xlsm").Worksheets("Sheet1").Range("A1")
เมื่อคุณอ้างอิงวัตถุ Range ดังที่แสดงด้านบน วัตถุนั้นจะถูกเรียกว่า การอ้างอิงที่มีคุณสมบัติครบถ้วน- คุณได้บอก Excel อย่างชัดเจนว่าคุณต้องการช่วงใด แผ่นงานใด และในแผ่นงานใด
ตัวอย่าง: ข่าวสารเกี่ยวกับBox แผ่นงาน ("แผ่นงาน 1"). ช่วง ("A1"). ค่า
การใช้คุณสมบัติ Range คุณสามารถทำงานหลายอย่างเช่น
- อ้างถึงเซลล์เดียวโดยใช้คุณสมบัติช่วง
- อ้างถึงเซลล์เดียวโดยใช้คุณสมบัติ Worksheet.Range
- อ้างถึงทั้งแถวหรือคอลัมน์
- อ้างถึงเซลล์ที่ผสานโดยใช้ Worksheet.Range Property และอื่นๆ อีกมากมาย
ด้วยเหตุนี้จึงจะยาวเกินไปที่จะครอบคลุมสถานการณ์ทั้งหมดสำหรับคุณสมบัติของช่วง สำหรับสถานการณ์ที่กล่าวถึงข้างต้น เราจะสาธิตตัวอย่างเพียงสถานการณ์เดียวเท่านั้น อ้างถึงเซลล์เดียวโดยใช้คุณสมบัติช่วง
อ้างถึงเซลล์เดียวโดยใช้คุณสมบัติ Worksheet.Range
หากต้องการอ้างอิงถึงเซลล์เดียว คุณต้องอ้างอิงถึงเซลล์เดียว
ไวยากรณ์เป็นเรื่องง่าย “พิสัย(”เซลล์”)”
ที่นี่เราจะใช้คำสั่ง ".Select" เพื่อเลือกเซลล์เดียวจากแผ่นงาน
ขั้นตอน 1) ในขั้นตอนนี้ ให้เปิด Excel ของคุณ
ขั้นตอน 2) ในขั้นตอนนี้
- คลิกที่ ปุ่ม
- มันจะเปิดหน้าต่างขึ้นมา
- ป้อนชื่อโปรแกรมของคุณที่นี่แล้วคลิกปุ่ม 'ตกลง'
- ระบบจะนำคุณไปยังไฟล์ Excel หลัก จากเมนูด้านบนให้คลิกที่ปุ่มบันทึก 'หยุด' เพื่อหยุดการบันทึกมาโคร
ขั้นตอน 3) ในขั้นตอนถัดไป
- คลิกที่ปุ่มมาโคร จากเมนูด้านบน มันจะเปิดหน้าต่างด้านล่าง
- ในหน้าต่างนี้ คลิกที่ปุ่ม 'แก้ไข'
ขั้นตอน 4) ขั้นตอนข้างต้นจะเปิดตัวแก้ไขโค้ด VBA สำหรับชื่อไฟล์ "Single Cell Range" กรอกรหัสตามที่แสดงด้านล่างเพื่อเลือกช่วง “A1” จาก Excel
ขั้นตอน 5) ตอนนี้บันทึกไฟล์ และรันโปรแกรมดังภาพด้านล่าง
ขั้นตอน 6) คุณจะเห็นเซลล์ “A1” ถูกเลือกหลังจากการทำงานของโปรแกรม
ในทำนองเดียวกัน คุณสามารถเลือกเซลล์ที่มีชื่อเฉพาะได้ ตัวอย่างเช่น หากคุณต้องการค้นหาเซลล์ที่ชื่อ “Guru99- VBA Tutorial” คุณจะต้องรันคำสั่งตามที่แสดงด้านล่าง ระบบจะเลือกเซลล์ที่มีชื่อนั้น
ช่วง("Guru99- VBA Tutorial") เลือก
หากต้องการใช้ออบเจ็กต์ช่วงอื่น นี่คือตัวอย่างโค้ด
ช่วงสำหรับการเลือกเซลล์ใน Excel | ประกาศช่วงแล้ว |
---|---|
สำหรับแถวเดี่ยว | พิสัย("1:1") |
สำหรับคอลัมน์เดียว | ช่วง ("A: A") |
สำหรับเซลล์ที่อยู่ติดกัน | พิสัย("A1:C5") |
สำหรับเซลล์ที่ไม่ต่อเนื่องกัน | พิสัย("A1:C5, F1:F5") |
สำหรับจุดตัดของสองช่วง | พิสัย("A1:C5 F1:F5")
(สำหรับเซลล์จุดตัด โปรดจำไว้ว่าไม่มีตัวดำเนินการเครื่องหมายจุลภาค) |
เพื่อรวมเซลล์ | พิสัย("A1:C5")
(หากต้องการรวมเซลล์ให้ใช้คำสั่ง "ผสาน") |
คุณสมบัติของเซลล์
ในทำนองเดียวกันกับช่วงใน VBA คุณยังสามารถ "ทรัพย์สินของเซลล์" ได้ ข้อแตกต่างเพียงอย่างเดียวคือมีคุณสมบัติ "รายการ" ที่คุณใช้อ้างอิงเซลล์ในสเปรดชีตของคุณ คุณสมบัติของเซลล์มีประโยชน์ในการเขียนโปรแกรมวนซ้ำ
ตัวอย่างเช่น
Cells.item (แถว, คอลัมน์) ทั้งสองบรรทัดด้านล่างอ้างอิงถึงเซลล์ A1
- Cells.item(1,1) หรือ
- Cells.item (1” A”)
คุณสมบัติออฟเซ็ตช่วง
คุณสมบัติชดเชยช่วงจะเลือกแถว/คอลัมน์ให้ห่างจากตำแหน่งเดิม เซลล์จะถูกเลือกตามช่วงที่ประกาศ ดูตัวอย่างด้านล่าง
ตัวอย่างเช่น
Range("A1").offset(Rowoffset:=1, Columnoffset:=1).Select
ผลลัพธ์จะเป็นเซลล์ B2 คุณสมบัติออฟเซ็ตจะย้ายเซลล์ A1 ไปที่ 1 คอลัมน์และห่างออกไป 1 แถว คุณสามารถเปลี่ยนค่าของ rowoffset / columnoffset ได้ตามความต้องการ คุณสามารถใช้ค่าลบ (-1) เพื่อย้ายเซลล์ไปข้างหลัง
ดาวน์โหลด Excel ที่มีโค้ดด้านบน
สรุป
- VBA Range Object แสดงถึงเซลล์หรือหลายเซลล์ในแผ่นงาน Excel ของคุณ
- เซลล์เดียว
- แถวหรือคอลัมน์ของเซลล์
- การเลือกเซลล์
- ช่วงสามมิติ
- เพื่อจัดการค่าของเซลล์ อสังหาริมทรัพย์ และ วิธีการ ถูกนำมาใช้
- คุณสมบัติจัดเก็บข้อมูลเกี่ยวกับวัตถุ
- วิธีการคือการกระทำของออบเจ็กต์ที่จะดำเนินการ เช่น เลือก ผสาน เรียงลำดับ ฯลฯ
- VBA ปฏิบัติตามรูปแบบลำดับชั้นของวัตถุเพื่ออ้างอิงวัตถุใน Excel โดยใช้ตัวดำเนินการ .dot
- คุณสมบัติช่วงสามารถนำไปใช้กับวัตถุสองประเภทที่แตกต่างกัน
- วัตถุแผ่นงาน
- วัตถุช่วง