วิธีการเลือกเซลล์/ช่วงโดยใช้ Procedure ของ Visual Basic ใน Excel

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 291308 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

ข้อมูลเพิ่มเติม

Microsoft แสดงตัวอย่างการเขียนโปรแกรมเพื่อประกอบการอธิบายเท่านั้น และไม่มีการรับประกัน ไม่ว่าโดยชัดแจ้งหรือโดยนัย ทั้งนี้รวมถึง แต่ไม่จำกัดเพียงการรับประกันโดยนัยในเรื่องความสามารถในการจำหน่ายหรือความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ บทความนี้ตั้งสมมติฐานว่าคุณมีความคุ้นเคยกับภาษาการเขียนโปรแกรมที่แสดงอยู่ รวมทั้งเครื่องมือต่างๆ ที่ใช้ในการสร้างและแก้จุดบกพร่องของกระบวนการ วิศวกรฝ่ายสนับสนุนของ Microsoft สามารถช่วยอธิบายฟังก์ชันในขั้นตอนใดขั้นตอนหนึ่ง แต่จะไม่แก้ไขตัวอย่างนี้เพื่อเพิ่มฟังก์ชันหรือสร้างขั้นตอนเพิ่มเติมเพื่อตอบสนองความต้องการโดยเฉพาะของคุณ ตัวอย่างในบทความนี้ใช้เมธอดของ Visual Basic ที่แสดงในตารางต่อไปนี้
   อาร์กิวเมนต์ของวิธีการ
   ------------------------------------------
   เปิดใช้งานไม่มี
   เซลล์ rowIndex, columnIndex
   การอ้างอิง Application.Goto เลื่อน
   ตรงข้าม rowOffset, columnOffset
   ช่วง cell1
                      cell1, cell2
   ปรับขนาด rowSize, columnSize
   เลือกไม่มี
   แผ่นงานดัชนี (หรือ sheetName)
   ดัชนีของสมุดงาน (หรือ bookName)
   ทิศทางสิ้นสุด
   CurrentRegion ไม่มี
				
ตัวอย่างในบทความนี้ใช้คุณสมบัติต่างๆ ในตารางต่อไปนี้
   ใช้คุณสมบัติ
   ---------------------------------------------------------------------
   ActiveSheet ที่ระบุของแผ่นงานที่ใช้งานอยู่
   ActiveWorkbook เพื่อระบุสมุดงานที่ใช้งานอยู่
   Columns.Count การนับจำนวนของคอลัมน์ในรายการที่ระบุ
   Rows.Count การนับจำนวนแถวในรายการที่ระบุ
   เลือกการอ้างอิงไปยังช่วงที่เลือกในปัจจุบัน
				

1: วิธีการเลือกช่วงตั้งชื่อบนแผ่นงานที่ใช้งานอยู่

เพื่อเลือกเซลล์ D5 บนแผ่นงานที่ใช้งานอยู่ คุณสามารถใช้ตัวอย่างใดตัวอย่างหนึ่งต่อไปนี้:
ActiveSheet.Cells(5, 4).Select
				
-หรือ-
ActiveSheet.Range("D5").Select
				

2: วิธีการเลือกเซลล์บนแผ่นงานอื่นในสมุดงานเดียวกัน

เพื่อเลือกเซลล์ E6 บนแผ่นงานอื่นในสมุดงานเดียวกัน คุณสามารถใช้ตัวอย่างใดตัวอย่างหนึ่งต่อไปนี้:
Application.Goto ActiveWorkbook.Sheets("Sheet2").Cells(6, 5)
				
   -หรือ-
				
Application.Goto (ActiveWorkbook.Sheets("Sheet2").Range("E6"))
				
หรือ คุณสามารถเรียกใช้แผ่นงาน และจากนั้น ให้ใช้วิธีที่ 1 ข้างต้นเพื่อเลือกเซลล์:
Sheets("Sheet2").Activate
ActiveSheet.Cells(6, 5).Select
				

3: วิธีการเลือกเซลล์บนแผ่นงานในสมุดงานอื่น

เพื่อเลือกเซลล์ F7 บนแผ่นงานในสมุดงานอื่น คุณสามารถใช้ตัวอย่างใดตัวอย่างหนึ่งต่อไปนี้:
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Cells(7, 6)
				
-หรือ-
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("F7")
				
หรือ คุณสามารถเรียกใช้แผ่นงาน และจากนั้น ให้ใช้วิธีที่ 1 ข้างต้นเพื่อเลือกเซลล์:
Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate
ActiveSheet.Cells(7, 6).Select
				

4: วิธีการเลือกช่วงของเซลล์บนแผ่นงานที่ใช้งานอยู่

เพื่อเลือกช่วง C2:D10 บนแผ่นงานที่ใช้งานอยู่ คุณสามารถใช้ตัวอย่างใดตัวอย่างหนึ่งต่อไปนี้:
ActiveSheet.Range(Cells(2, 3), Cells(10, 4)).Select
				
ActiveSheet.Range("C2:D10").Select
				
ActiveSheet.Range("C2", "D10").Select
				

5: วิธีการเลือกช่วงของเซลล์บนแผ่นงานอื่นในสมุดงานเดียวกัน

เพื่อเลือกช่วง D3:E11 บนแผ่นงานอื่นในสมุดงานเดียวกัน คุณสามารถใช้ตัวอย่างใดตัวอย่างหนึ่งต่อไปนี้:
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3:E11")
				
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3", "E11")
				
หรือ คุณสามารถเรียกใช้แผ่นงาน และจากนั้น ให้ใช้วิธีที่ 4 ข้างต้นเพื่อเลือกช่วง:
Sheets("Sheet3").Activate
ActiveSheet.Range(Cells(3, 4), Cells(11, 5)).Select
				

6: วิธีการเลือกช่วงของเซลล์บนแผ่นงานในสมุดงานอื่น

เพื่อเลือกช่วง E4:F12 บนแผ่นงานในสมุดงานอื่น คุณสามารถใช้ตัวอย่างใดตัวอย่างหนึ่งต่อไปนี้:
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4:F12")
				
Application.Goto _
      Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4", "F12")
				
หรือ คุณสามารถเรียกใช้แผ่นงาน และจากนั้น ให้ใช้วิธีที่ 4 ข้างต้นเพื่อเลือกช่วง:
Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate
   ActiveSheet.Range(Cells(4, 5), Cells(12, 6)).Select
				

7: วิธีการเลือกช่วงที่มีชื่อบนแผ่นงานที่ใช้งานอยู่

เพื่อเลือกช่วงที่มีชื่อ "ทดสอบ" บนแผ่นงานที่ใช้งานอยู่ คุณสามารถใช้หนึ่งในตัวอย่างต่อไปนี้:
Range("Test").Select
				
Application.Goto "Test"
				

8: วิธีการเลือกช่วงที่มีชื่อบนแผ่นงานอื่นในสมุดงานเดียวกัน

เพื่อเลือกช่วงที่มีชื่อ "ทดสอบ" บนแผ่นงานอื่นในสมุดงานเดียวกัน คุณสามารถใช้ตัวอย่างต่อไปนี้:
Application.Goto Sheets("Sheet1").Range("Test")
				
หรือ คุณสามารถเรียกใช้แผ่นงาน และจากนั้น ให้ใช้วิธีที่ 7 ข้างต้นเพื่อเลือกช่วงที่มีชื่อ:
Sheets("Sheet1").Activate
Range("Test").Select
				

9: วิธีการเลือกช่วงที่มีชื่อบนแผ่นงานหนึ่งในสมุดงานอื่น

เพื่อเลือกช่วงที่มีชื่อ "ทดสอบ" บนแผ่นงานหนึ่งในสมุดงานเดียวอื่น คุณสามารถใช้ตัวอย่างต่อไปนี้:
Application.Goto _
   Workbooks("BOOK2.XLS").Sheets("Sheet2").Range("Test")
				
หรือ คุณสามารถเรียกใช้แผ่นงาน และจากนั้น ให้ใช้วิธีที่ 7 ข้างต้นเพื่อเลือกช่วงที่มีชื่อ:
Workbooks("BOOK2.XLS").Sheets("Sheet2").Activate
Range("Test").Select
				

10: วิธีการเลือกความสัมพันธ์ของเซลล์หนึ่งต่อเซลล์ที่กำลังใช้งาน

เพื่อเลือกเซลล์ที่เป็นแถวที่ห้าทางด้านล่างและแถวที่สี่ทางด้านซ้าย คุณสามารถใช้ตัวอย่างต่อไปนี้:
ActiveCell.Offset(5, -4).Select
				
เพื่อเลือกเซลล์หนึ่งที่เป็นแถวที่สองทางด้านบนและแถวที่สามทางด้านขวา คุณสามารถใช้ตัวอย่างต่อไปนี้:
ActiveCell.Offset(-2, 3).Select
				
หมายเหตุ ข้อผิดพลาดจะเกิดขึ้นหากคุณพยายามจะเลือกเซลล์ที่อยู่ "นอกแผ่นงาน" ตัวอย่างแรกทางด้านบนจะคืนข้อผิดพลาดหากเซลล์ที่ใช้งานอยู่ในคอลัมน์ A ถึง D เนื่องจากการย้ายสี่คอลัมน์ไปทางซ้ายจะทำให้เซลล์ที่ใช้งานอยู่เป็นที่อยู่เซลล์ที่ไม่ถูกต้อง

11: วิธีการเลือกความสัมพันธ์ของเซลล์ไปยังเซลล์อื่น (ไม่ได้ใช้งานอยู่)

เพื่อเลือกเซลล์ที่เป็นแถวที่ห้าทางด้านล่างและสี่คอลัมน์ทางด้านขวาของเซลล์ C7 คุณสามารถใช้ตัวอย่างใดตัวอย่างหนึ่งต่อไปนี้:
ActiveSheet.Cells(7, 3).Offset(5, 4).Select
				
ActiveSheet.Range("C7").Offset(5, 4).Select
				

12: วิธีการเลือกช่วงของเซลล์ออฟเซ็ตจากช่วงที่ระบุ

เพื่อเลือกช่วงของเซลล์ช่วงหนึ่งที่มีขนาดเท่ากันกับเซลล์ที่มีชื่อ "ทดสอบ" แต่ถูกเลื่อนไปสี่แถวทางด้านล่างและสามคอลัมน์ทางด้านขวา คุณสามารถใช้ตัวอย่างต่อไปนี้:
ActiveSheet.Range("Test").Offset(4, 3).Select
				
ห่างช่วงที่มีชื่ออยู่บนแผ่นงานอื่น (ไม่ได้ใช้งานอยู่) เปิดใช้งานแผ่นงานนั้นก่อน จากนั้นเลือกช่วงโดยทำตามตัวอย่างต่อไปนี้:
Sheets("Sheet3").Activate
ActiveSheet.Range("Test").Offset(4, 3).Select
				

13: วิธีการเลือกช่วงระบุ และปรับขนาดส่วนที่เลือก

เพื่อเลือกช่วงที่มีชื่อ "ฐานข้อมูล" และจากนั้น ขยายส่วนที่เลือกไปห้าแถว คุณสามารถทำตามตัวอย่างต่อไปนี้:
Range("Database").Select
Selection.Resize(Selection.Rows.Count + 5, _
   Selection.Columns.Count).Select
				

14: วิธีการเลือกช่วงที่ระบุ ทำออฟเซ็ต และปรับขนาดช่วงที่ระบุ

เพื่อเลือกช่วงสี่แถวทางด้านล่างและสามคอลัมน์ทางด้านขวาของช่วงที่มีชื่อ "ฐานข้อมูล" และมีขนาดใหญ่กว่าช่วงที่มีชื่อสองแถวและหนึ่งคอลัมน์ คุณสามารถทำตามตัวอย่างต่อไปนี้:
Range("Database").Select
Selection.Offset(4, 3).Resize(Selection.Rows.Count + 2, _
   Selection.Columns.Count + 1).Select
				

15: วิธีการเลือกยูเนียนของช่วงที่ระบุสองช่วงหรือมากกว่า

เพื่อเลือกการยูเนียน (นั่นคือพื้นที่ซึ่งรวมกัน) ของช่วงที่มีชื่อสองช่วง "ทดสอบ" และ "ตัวอย่าง" คุณสามารถทำตามตัวอย่างต่อไปนี้:
Application.Union(Range("Test"), Range("Sample")).Select
				
โปรดทราบว่า ทั้งสองช่วงต้องอยู่บนแผ่นงานเดียวกันสำหรับตัวอย่างนี้จะทำงาน โปรดสังเกตด้วยว่าวิธีการ ยูเนียน ไม่ทำงานข้ามแผ่นงาน ตัวอย่างเช่น ทำงานเปลี่ยนของบรรทัดนี้
Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet1!C3:D4"))
				
แต่บรรทัดนี้
Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet2!C3:D4"))
				
ส่งกลับค่าข้อผิดพลาด:
ยูเนียนเมธอดของคลาสแอพลิเคชันล้มเหลว

16: วิธีการเลือกอินเทอร์เซคชันของช่วงที่ระบุสองช่วงหรือมากกว่า

เพื่อเลือกอินเทอร์เซคชันของช่วงที่มีชื่อสองช่วง "ทดสอบ" และ "ตัวอย่าง" คุณสามารถใช้ตัวอย่างต่อไปนี้:
Application.Intersect(Range("Test"), Range("Sample")).Select
				
โปรดทราบว่า ทั้งสองช่วงต้องอยู่บนแผ่นงานเดียวกันสำหรับตัวอย่างนี้จะทำงาน



17-21 ตัวอย่างในบทความนี้อ้างอิงถึงชุดของข้อมูลตัวอย่างต่อไปนี้ แต่ละอย่างระบุช่วงของเซลล์ที่มีข้อมูลตัวอย่างที่จะถูกเลือก
   A1: ชื่อ B1: ขาย C1: ปริมาณ
   A2: แบบ B2: $10 C2: 5
   A3: b B3:          C3: 10
   A4: c B4: $10      C4: 5
   A5:         B5:          C5:
   A6: B6 รวม: $20      C6: 20
				

17: วิธีการเลือกเซลล์สุดท้ายของข้อมูลที่อยู่ติดกัน

เพื่อเลือกเซลล์สุดท้ายในคอลัมน์ที่อยู่ติดกัน ทำตามตัวอย่างต่อไปนี้:
ActiveSheet.Range("a1").End(xlDown).Select
				
เมื่อใช้กับตารางตัวอย่างรหัสนี้ จะมีเลือกเซลล์ A4

18: วิธีการเลือกเซลล์ว่างที่ด้านล่างของคอลัมน์ของข้อมูลที่อยู่ติดกัน

เพื่อเลือกเซลล์ด้านล่างช่วงของเซลล์ที่อยู่ติดกัน ทำตามตัวอย่างต่อไปนี้:
ActiveSheet.Range("a1").End(xlDown).Offset(1,0).Select
				
เมื่อใช้กับตารางตัวอย่างรหัสนี้ จะมีเลือกเซลล์ A5

19: วิธีการเลือกช่วงทั้งหมดของเซลล์ที่อยู่ติดกันในคอลัมน์หนึ่ง

เพื่อเลือกช่วงของเซลล์ที่อยู่ติดกันในคอลัมน์ ทำตามตัวอย่างใดตัวอย่างหนึ่งต่อไปนี้:
ActiveSheet.Range("a1", ActiveSheet.Range("a1").End(xlDown)).Select
				
   -หรือ-
				
ActiveSheet.Range("a1:" & ActiveSheet.Range("a1"). _
      End(xlDown).Address).Select
				
เมื่อใช้กับตารางตัวอย่างรหัสนี้ จะมีเลือกเซลล์ A1 จนถึง A4

20: วิธีการเลือกช่วงทั้งหมดของเซลล์ที่ไม่อยู่ติดกันในคอลัมน์หนึ่ง

เพื่อเลือกช่วงของเซลล์ที่ไม่อยู่ติดกันในคอลัมน์ ทำตามตัวอย่างใดตัวอย่างหนึ่งต่อไปนี้:
ActiveSheet.Range("a1",ActiveSheet.Range("a65536").End(xlUp)).Select
				
   -หรือ-
				
ActiveSheet.Range("a1:" & ActiveSheet.Range("a65536"). _
   End(xlUp).Address).Select
				
เมื่อใช้รหัสนี้กับตารางตัวอย่าง ก็จะเลือกเซลล์ A1 จนถึง A6

21: วิธีการเลือกช่วงสี่เหลี่ยมของเซลล์

เพื่อที่จะเลือกช่วงสี่เหลี่ยมของเซลล์รอบเซลล์หนึ่ง ใช้วิธีการ CurrentRegion ช่วงที่เลือกโดยวิธีการ CurrentRegion คือพื้นที่ที่กำหนดขอบเขตโดยการผสมผสานระหว่างแถวว่างและคอลัมน์ว่าง ต่อไปนี้คือ ตัวอย่างของการใช้วิธีการ CurrentRegion:
ActiveSheet.Range("a1").CurrentRegion.Select
				
รหัสนี้จะเลือกเซลล์ A1 จนถึง C4 ตัวอย่างอื่น ๆ เพื่อเลือกช่วงเดียวของเซลล์ที่แสดงด้านล่าง:
ActiveSheet.Range("a1", _
   ActiveSheet.Range("a1").End(xlDown).End(xlToRight)).Select
				
   -หรือ-
				
ActiveSheet.Range("a1:" & _
   ActiveSheet.Range("a1").End(xlDown).End(xlToRight).Address).Select
				
ในบางครั้ง คุณอาจต้องการเลือกเซลล์ A1 จนถึง C6 ในตัวอย่างนี้วิธีการ CurrentRegion จะไม่ทำงานเนื่องจาก มีบรรทัดว่างบนแถว 5 ครั้ง ตัวอย่างต่อไปนี้จะเลือกเซลล์ทั้งหมด:
lastCol = ActiveSheet.Range("a1").End(xlToRight).Column
lastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).Row
ActiveSheet.Range("a1", ActiveSheet.Cells(lastRow, lastCol)).Select
				
    -หรือ-
				
lastCol = ActiveSheet.Range("a1").End(xlToRight).Column
lastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).Row
ActiveSheet.Range("a1:" & _
   ActiveSheet.Cells(lastRow, lastCol).Address).Select
				

22. วิธีการเลือกคอลัมน์ที่ไม่อยู่ติดกันหลายคอลัมน์ที่มีความยาวแตกต่างกัน

เพื่อเลือกคอลัมน์ที่ไม่อยู่ติดกันหลายคอลัมน์ที่มีความยาวแตกต่างกัน ใช้ตารางตัวอย่างและตัวอย่างแมโครต่อไปนี้:
   A1: 1   B1: 1   C1: 1 D1: 1
   A2: 2   B2: 2   C2: 2      D2: 2
   A3: 3   B3: 3   C3: 3    D3: 3
   A4:    B4: 4   C4: 4     D4: 4
   A5:    B5: 5   C5: 5   D5:
   A6:    B6:    C6: 6     D6:
				
StartRange = "A1"
EndRange = "C1"
Set a = Range(StartRange, Range(StartRange).End(xlDown))
Set b = Range(EndRange, Range(EndRange).End(xlDown))
Union(a,b).Select
				
เมื่อมีใช้รหัสนี้กับตารางตัวอย่าง เซลล์ A1: A3 และ C1:C6 จะถูกเลือก

หมายเหตุในตัวอย่างนี้

  • โดยปกติจะสามารถตัดคุณสมบัติ ActiveSheet ออกได้ เนื่องจากจะใช้ในกรณีที่ไม่ได้ตั้งชื่อแผ่นงานเฉพาะ ตัวอย่างเช่น แทนของ
    ActiveSheet.Range("D5").Select
    						
    คุณสามารถใช้:
    Range("D5").Select
    						
  • โดยปกติสามารถตัดคุณสมบัติ ActiveWorkbook ออกได้เช่นเดียวกัน ยกเว้นว่าสมุดงานระบุชื่อ สมุดงานที่ใช้งานอยู่โดยนัย
  • หากคุณใช้วิธีการ Application.Goto หากคุณต้องการใช้วิธีการของ เซลล์ สองวิธีการภายในวิธีการ ช่วง เมื่อช่วงที่รถบุอยู่บนแผ่นงานอื่น (ไม่ได้ใช้งานอยู่) คุณต้องรวมออบเจ็กต์ แผ่นงาน ทุกครั้ง ตัวอย่างเช่น:
    Application.Goto Sheets("Sheet1").Range( _
          Sheets("Sheet1").Range(Sheets("Sheet1").Cells(2, 3), _
          Sheets("Sheet1").Cells(4, 5)))
    					
  • สำหรับรายการใดๆ ที่อยู่ในเครื่องหมายคำพูด (ตัวอย่างเช่น ช่วงที่มีชื่อ "ทดสอบ") คุณยังสามารถใช้ตัวแปรที่มีค่าเป็นสตริงข้อความ ตัวอย่างเช่น แทนของ
    ActiveWorkbook.Sheets("Sheet1").Activate
    						
    คุณสามารถใช้
    ActiveWorkbook.Sheets(myVar).Activate
    						
    โดยที่ค่าของ myVar คือ "Sheet1"

ข้อมูลอ้างอิง


สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการใช้โค้ดตัวอย่างในบทความนี้ ให้คลิกหมายเลขบทความเพื่อดูบทความในฐานความรู้ Microsoft:
290140 วิธีการเรียกใช้โค้ดตัวอย่างสำหรับโปรแกรม Office XP จากบทความฐานข้อมูลองค์ความรู้

คุณสมบัติ

หมายเลขบทความ (Article ID): 291308 - รีวิวครั้งสุดท้าย: 9 มีนาคม 2557 - Revision: 4.0
ใช้กับ
  • Microsoft Office Excel 2003
  • Microsoft Office Excel 2007
  • Microsoft Excel 2010
Keywords: 
kbautomation kbmacro kbdtacode kbhowto kbprogramming KB291308

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com