บทความนี้สอนใช้ Range Object ใน VBA ทำงานต่างๆ โดยอ้างอิงจาก Column Number (หมายเลขคอลัมน์) แทนตัวอักษร
ดาวน์โหลดสมุดงาน
ดาวน์โหลดไฟล์ Excel ฟรีเพื่อฝึกปฏิบัติ
VBA Range Object คืออะไร?
Range Object สามารถเก็บ: เซลล์เดี่ยว, หลายเซลล์, แถว, คอลัมน์ ภายใน Worksheet
ลำดับชั้น: Application → Workbook → Worksheet → Range
การประกาศ: Dim rng As Range: Set rng = Worksheets("Sheet1").Range("A1:B10")

4 วิธีใช้ Range ตาม Column Number ใน VBA
1. Select Range ตาม Column Number
เลือกช่วง C2:E10 (Row 2-10, Col 3-5)

โค้ด:
Sub SetRange()
Range(Cells(2, 3), Cells(10, 5)).Select
End Sub
Cells(row, column): Cells(2,3)=C2, Cells(10,5)=E10



รัน (F5) → ช่วง C2:E10 ถูกเลือก


2. Set Value ใน Range ตาม Column Number
ใส่ค่า "Hello!" ในช่วง B2:D8 (Row 2-8, Col 2-4)
Sub SetValue()
Range(Cells(2, 2), Cells(8, 4)).Value2 = "Hello!"
End Sub
Cells(2,2)=B2, Cells(8,4)=D8

รัน → เซลล์ B2:D8 ทั้งหมดมีค่า "Hello!"

3. Select Range จาก Worksheet อื่นตาม Column Number
เลือกช่วง C3:F7 (Row 3-7, Col 3-6) จากชีทชื่อ "Range"
Sub FixedRange()
Dim iRng As Range, iSheet As Worksheet
Set iSheet = Worksheets("Range")
With iSheet
.Cells(1, 7).Select ' G7
Set iRng = .Range(.Cells(3, 3), .Cells(7, 6))
End With
iRng.Select
End Sub

รัน → เลือกช่วง C3:F7 ในชีท "Range"

4. Return Last Column Number ใน Range
หาหมายเลขคอลัมน์สุดท้ายของช่วง A1:D10 ใส่ใน F5 (ชีท Return)
Sub ReturnLastColumnInRange()
Dim iSheet As Worksheet, iRng As Range
Set iWS = Worksheets("Return")
Set iRng = iWS.Range("A1:D10")
iWS.Range("F5") = iRng.Column + iRng.Columns.Count - 1
End Sub

รัน → F5 แสดง 4 (คอลัมน์ D)

ข้อดีของ VBA Set Range
- ใช้งานง่าย
- อาร์กิวเมนต์ไม่ตายตัว ปรับเปลี่ยนได้ตามต้องการ
- รองรับหลายค่าเป็นอาร์กิวเมนต์
ข้อควรจำ
- 👉 Cells Property ใช้ Set Range ได้เช่นกัน
- 👉 Object Variable ต้องใช้ Set Keyword
สรุป
4 เทคนิค VBA Range ด้วย Column Number: 1) Select Range 2) Set Value 3) Select Range จากชีทอื่น 4) Return Last Column Number ใช้ Cells(row, col) ร่วมกับ Range เพื่ออ้างอิงแบบไดนามิก
บทความที่เกี่ยวข้อง
- How to Select Range Based on Cell Value VBA (7 Ways)
- Excel VBA Copy Range to Another Sheet (8 Easiest ways)
- Excel Subscript Out of Range Error in VBA (with 5 Solutions)
- [Fixed!] Excel Columns Are Labeled with Numbers Not Letters
- How to Convert Column Letter to Number Chart in Excel (4 Ways)