บทความนี้สอนการใช้ UsedRange Property ของ VBA ใน Excel: สำหรับ Closed Range, Scattered Range, Inactive Worksheet, และ Inactive Workbook
UsedRange Property ของ VBA คืออะไร?
คืนค่า Range Object ที่ครอบคลุมเซลล์ที่ใช้งานทั้งหมดในชีท รวมแถวว่างด้านบนด้วย
Syntax พื้นฐาน (Active Sheet):
Dim Rng As Range
Set Rng = ActiveSheet.UsedRange
ชีทอื่น: Set Rng = Worksheets("Sheet1").UsedRange
4 วิธีใช้ UsedRange Property
1. UsedRange สำหรับ Closed Range (ช่วงติดต่อกัน)
ข้อมูล: ชื่อ, วันที่เข้าทำงาน, เงินเดือน ใน B2:D13 (มีแถวว่างแถวแรก)
โค้ด: Set Rng = ActiveSheet.UsedRange หรือ Worksheets("Sheet1").UsedRange
ผลลัพธ์: ได้ Range B2:D13 (รวมแถวว่างด้านบน)
2. UsedRange สำหรับ Scattered Range (กระจาย)
ข้อมูลกระจาย: Total Salary, Highest, Lowest อยู่ B3 ถึง G3
โค้ดเดียวกัน → ได้ Range B2:G3 (รวมเซลล์ว่างระหว่างและแถวว่างด้านบน)
3. UsedRange สำหรับ Inactive Worksheet
Active Sheet = Sheet1, ต้องการ UsedRange ของ Sheet2:
Dim Rng As Range
Set Rng = Worksheets("Sheet2").UsedRange
เลือกเซลล์ที่ใช้งานทั้งหมดใน Sheet2
4. UsedRange สำหรับ Inactive Workbook
Active Workbook = Workbook1, ต้องการ Sheet1 ของ Workbook2:
Dim Rng As Range
Set Rng = Workbooks("Workbook2.xlsm").Worksheets("Sheet1").UsedRange
เลือก Used Range ของ Sheet1 ใน Workbook2
สังเกตสำคัญ
UsedRange คืนค่า Range Object บทความใช้ Select เพื่อแสดงผล แต่จริงๆ ใช้ Property อื่นของ Range ได้ตามต้องการ
สรุป
4 เทคนิค UsedRange: Closed Range, Scattered Range, Inactive Worksheet, Inactive Workbook - จัดการ Range ให้แม่นยำ
บทความเกี่ยวข้อง
- VBA Select Range ตาม Cell Value (7 วิธี)
- VBA Range ตาม Column Number (4 วิธี)
- VBA Range Offset (11 วิธี)
- VBA Range แถวตัวแปร (4 ตัวอย่าง)
- นับข้อความใน Excel (7 เทคนิค)