Cách chọn ô/dải ô bằng quy trình Visual Basic trong Excel

ID c?a bài: 291308 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

THÔNG TIN THÊM

Microsoft chỉ cung cấp mô hình lập trình để minh hoạ mà không đảm bảo dưới bất kỳ hình thức nào dù có quy định rõ ràng hay ngụ ý. Điều này bao gồm nhưng không giới hạn trong các hình thức bảo hành đối với tính thương mại cũng như tính thích hợp cho một mục đích cụ thể. Bài viết này giả định rằng bạn đã quen với ngôn ngữ lập trình đang được giải thích, và công cụ được sử dụng để tạo và gỡ lỗi quy trình. Microsoft hỗ trợ các kỹ sư giải thích chức năng của quy trình đặc biệt, nhưng họ sẽ không sửa đổi những mô hình này để cung cấp chức năng được bổ sung hoặc xây dựng các quy trình nhằm đáp ứng yêu cầu cụ thể của bạn. Các mô hình trong bài viết này bao gồm phương pháp Visual Basic được liệt kê trong bảng sau.
   Phương thức             Đối số
   ------------------------------------------
   Đang hoạt động           không
   Ô              rowIndex, columnIndex
   Application.Goto   reference, scroll
   Bù             rowOffset, columnOffset
   Dải ô              cell1
                      cell1, cell2
   Sửa lại kích cỡ             rowSize, columnSize
   Chọn             không
   Trang            chỉ mục (hoặc sheetName)
   Sổ làm việc          chỉ mục (hoặc bookName)
   Kết thúc                hướng dẫn
   Vùng hiện tại      không
				
Các mô hình trong bài viết này sử dụng thuộc tính trong bảng sau.
   Thuộc tính          Sử dụng
   ---------------------------------------------------------------------
   ActiveSheet      để chỉ định trang đang hoạt động 
   ActiveWorkbook   để chỉ định sổ làm việc đang hoạt động
   Columns.Count    để tính số cột trong mục đã chỉ định
   Rows.Count       để tính số hàng trong mục đã chỉ định
   Selection        để tham khảo dải ô hiện đã chọn
				

1: Cách Chọn Ô trong Trang tính Đang hoạt động

Để chọn ô D5 trên trang tính đang hoạt động, bạn có thể sử dụng một trong hai mẫu sau:
ActiveSheet.Cells(5, 4).Select
				
-hoặc-
ActiveSheet.Range("D5").Select
				

2: Cách Chọn Ô trên Trang tính Khác trong Cùng một Sổ làm việc

Để chọn ô E6 trên trang tính khác trong cùng một sổ làm việc, bạn có thể sử dụng một trong hai mẫu sau:
Application.Goto ActiveWorkbook.Sheets("Sheet2").Cells(6, 5)
				
   -hoặc-
				
Application.Goto (ActiveWorkbook.Sheets("Sheet2").Range("E6"))
				
Hoặc, bạn có thể kích hoạt trang tính, và sau đó sử dụng phương pháp 1 ở phía trên để chọn ô:
Sheets("Sheet2").Activate
ActiveSheet.Cells(6, 5).Select
				

3: Cách Chọn Ô trên Trang tính trong Sổ làm việc Khác

Để chọn ô F7 trên trang tính trong sổ làm việc khác, bạn có thể sử dụng một trong hai mẫu sau:
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Cells(7, 6)
				
-hoặc-
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("F7")
				
Hoặc, bạn có thể kích hoạt trang tính, và sau đó sử dụng phương pháp 1 ở phía trên để chọn ô:
Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate
ActiveSheet.Cells(7, 6).Select
				

4: Cách Chọn Dải Ô trên Trang tính Đang hoạt động

Để chọn dải ô C2:D10 trên trang tính đang hoạt động, bạn có thể sử dụng bất kỳ mẫu nào trong những mẫu sau:
ActiveSheet.Range(Cells(2, 3), Cells(10, 4)).Select
				
ActiveSheet.Range("C2:D10").Select
				
ActiveSheet.Range("C2", "D10").Select
				

5: Cách Chọn Dải Ô trên Trang tính Khác trong Cùng một Sổ làm việc

Để chọn dải ô D3:E11 trên trang tính khác trong cùng một sổ làm việc, bạn có thể sử dụng một trong hai mẫu sau:
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3:E11")
				
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3", "E11")
				
Hoặc, bạn có thể kích hoạt trang tính, và sau đó sử dụng phương pháp 4 ở phía trên để chọn dải ô:
Sheets("Sheet3").Activate
ActiveSheet.Range(Cells(3, 4), Cells(11, 5)).Select
				

6: Cách chọn Dải ô trên Trang tính trong Sổ làm việc khác

Để chọn dải ô E4:F12 trên trang tính trong sổ làm việc khác, bạn có thể sử dụng một trong hai mẫu sau:
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4:F12")
				
Application.Goto _
      Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4", "F12")
				
Hoặc, bạn có thể kích hoạt trang tính, và sau đó sử dụng phương pháp 4 ở phía trên để chọn dải ô:
Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate
   ActiveSheet.Range(Cells(4, 5), Cells(12, 6)).Select
				

7: Cách Chọn Dải ô đã Đặt tên trên Trang tính Đang hoạt động

Để chọn dải ô đã đặt tên "Test" trên trang tính đang hoạt động, bạn có thể sử dụng một trong hai cách sau:
Range("Test").Select
				
Application.Goto "Test"
				

8: Cách Chọn Dải ô đã Đặt tên trên Trang tính Khác trong Cùng một Sổ làm việc

Để chọn dải ô đã đặt tên "Test" trên trang tính khác trong cùng một sổ làm việc, bạn có thể sử dụng mẫu sau:
Application.Goto Sheets("Sheet1").Range("Test")
				
Hoặc, bạn có thể kích hoạt trang tính, và sau đó sử dụng phương pháp 7 ở phía trên để chọn dải ô đã đặt tên:
Sheets("Sheet1").Activate
Range("Test").Select
				

9: Cách Chọn Dải ô đã Đặt tên trên Trang tính trong Sổ làm việc Khác

Để chọn dải ô đã đặt tên "Test" trên trang tính trong sổ làm việc khác, bạn có thể sử dụng mẫu sau:
Application.Goto _
   Workbooks("BOOK2.XLS").Sheets("Sheet2").Range("Test")
				
Hoặc, bạn có thể kích hoạt trang tính, và sau đó sử dụng phương pháp 7 ở phía trên để chọn dải ô đã đặt tên:
Workbooks("BOOK2.XLS").Sheets("Sheet2").Activate
Range("Test").Select
				

10: Cách Chọn Ô Liên quan đến Ô Đang hoạt động Active Cell

Để chọn ô trong 5 hàng bên dưới và 4 cột bên trái ô đang hoạt động, bạn có thể sử dụng mẫu sau:
ActiveCell.Offset(5, -4).Select
				
Để chọn ô trong 2 hàng bên trên và 3 cột bên phải ô đang hoạt động, bạn có thể sử dụng mẫu sau:
ActiveCell.Offset(-2, 3).Select
				
Chú ý Lỗi sẽ xảy ra nếu bạn chọn ô "không nằm trong trang tính." Mẫu đầu tiên hiển thị ở trên sẽ trả lại lỗi nếu ô đang hoạt động nằm trong cột từ A đến D, do vi?c di chuyển 4 cột bên trái sẽ di chuyển ô đang hoạt động đến địa chỉ ô không hợp lệ.

11: Cách Chọn Ô Liên quan đến Ô Khác (Không ph?i Ô Đang hoạt động)

Để chọn ô trong 5 hàng bên dư?i và 4 cột bên ph?i ô C7, bạn có thể sử dụng m?t trong hai mẫu sau:
ActiveSheet.Cells(7, 3).Offset(5, 4).Select
				
ActiveSheet.Range("C7").Offset(5, 4).Select
				

12: Cách Chọn Dải ô Bù từ Dải ô đã Chỉ định

Để chọn dải ô có cùng kích thước với dải ô đã đặt tên "Test" nhưng đã được chuyển 4 hàng xuống dưới và 3 cột sang phải, bạn có thể sử dụng mẫu sau:
ActiveSheet.Range("Test").Offset(4, 3).Select
				
Nếu dải ô đã đặt tên nằm trên trang tính khác (không phải trang tính đang hoạt động), trước tiên phải kích hoạt trang tính đó, và sau đó chọn dải ô bằng mẫu sau:
Sheets("Sheet3").Activate
ActiveSheet.Range("Test").Offset(4, 3).Select
				

13: Cách Chọn Dải ô đã Chỉ định và Sửa lại kích cỡ Dải ô được chọn

Để chọn dải ô đã đặt tên "Database" và sau đó mở rộng dải ô được chọn thêm 5 hàng, bạn có thể sử dụng mẫu sau:
Range("Database").Select
Selection.Resize(Selection.Rows.Count + 5, _
   Selection.Columns.Count).Select
				
̃

14: Cách chọn Dải ô đã Chỉ định, Bù Dải ô và Sau đó Sửa lại kích cỡ

Để chọn dải 4 hàng bên dưới và 3 cột bên phải dải ô đã đặt tên "Database" và bao gồm thêm 2 hàng và 1 cột, nhiều hơn dải ô đã đặt tên, bạn có thể sử dụng mẫu sau:
Range("Database").Select
Selection.Offset(4, 3).Resize(Selection.Rows.Count + 2, _
   Selection.Columns.Count + 1).Select
				

15: Cách Chọn Tập hợp Hai hay Nhiều Dải ô đã Chỉ định

Để chọn tập hợp (nghĩa là vùng chọn được kết hợp) hoặc hai dải ô đã đặt tên "Test" và "Sample," bạn có thể sử dụng mẫu sau:
Application.Union(Range("Test"), Range("Sample")).Select
				
Lưu ý rằng cả hai dải ô phải trên cùng một trang tính để mẫu này hoạt động. Cũng lưu ý rằng phương pháp Tập hợp không hoạt động trên tất cả các trang. Ví dụ: dòng này sẽ hoạt động tốt
Đặt y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet1!C3:D4"))
				
nhưng dòng này
Đặt y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet2!C3:D4"))
				
sẽ trả về thông báo lỗi:
Phương pháp tập hợp của lớp ứng dụng không thành công

16: Cách Chọn Giao điểm của Hai hay Nhiều Dải ô đã Chỉ định

Để chọn giao điểm của hai dải ô đã đặt tên "Test" và "Sample," bạn có thể sử dụng mẫu sau:
Application.Intersect(Range("Test"), Range("Sample")).Select
				
Lưu ý rằng cả hai dải ô phải trên cùng một trang tính để mẫu này hoạt động.



Các mẫu từ 17-21 trong bài viết này đề cập đến bộ dữ liệu mẫu sau. Mỗi mẫu cho biết một dải ô trong dữ liệu mẫu sẽ được chọn.
   A1: Tên    B1: Hàng bán    C1: Số lượng
   A2: a       B2: $10      C2: 5
   A3: b       B3:          C3: 10
   A4: c       B4: $10      C4: 5
   A5:         B5:          C5:
   A6: Tổng   B6: $20      C6: 20
				

17: Cách Chọn Ô cuối cùng trong Cột Dữ liệu Tiếp giáp

Để chọn ô cuối cùng trong cột tiếp giáp, sử dụng mẫu sau:
ActiveSheet.Range("a1").End(xlDown).Select
				
Khi mã này được sử dụng cùng bảng mẫu, ô A4 sẽ được chọn.

18: Cách Chọn Ô Trống ở Cuối Cột Dữ liệu Tiếp giáp

Để chọn ô bên dưới dải ô tiếp giáp, sử dụng mẫu sau:
ActiveSheet.Range("a1").End(xlDown).Offset(1,0).Select
				
Khi mã này được sử dụng cùng bảng mẫu, ô A5 sẽ được chọn.

19: Cách Chọn Toàn bộ Dải Ô Tiếp giáp trong một Cột

Để chọn dải ô tiếp giáp trong một cột, sử dụng một trong những mẫu sau:
ActiveSheet.Range("a1", ActiveSheet.Range("a1").End(xlDown)).Select
				
   -hoặc-
				
ActiveSheet.Range("a1:" & ActiveSheet.Range("a1"). _
      End(xlDown).Address).Select
				
Khi mã này được sử dụng cùng bảng mẫu, các ô từ A1 đến A4 sẽ được chọn.

20: Cách Chọn Toàn bộ Dải Ô Không Tiếp giáp trong một Cột

Để chọn dải ô không tiếp giáp, sử dụng một trong những mẫu sau:
ActiveSheet.Range("a1",ActiveSheet.Range("a65536").End(xlUp)).Select
				
   -hoặc-
				
ActiveSheet.Range("a1:" & ActiveSheet.Range("a65536"). _
   End(xlUp).Address).Select
				
Khi mã này được sử dụng cùng bảng mẫu, các ô từ A1 đến A6 sẽ được chọn.

21: Cách Chọn Vùng Dải ô Hình chữ nhật

Để chọn vùng dải ô hình chữ nhật xung quanh một ô, sử dụng phương pháp CurrentRegion. Dải ô được chọn bằng phương pháp CurrentRegion là một vùng được giới hạn bởi mọi tập hợp hàng và cột trống. Sau đây là ví dụ về cách sử dụng phương pháp CurrentRegion:
ActiveSheet.Range("a1").CurrentRegion.Select
				
Mã này sẽ chọn các ô từ A1 đến C4. Các mẫu khác để chọn dải ô tương tự được liệt kê dưới đây:
ActiveSheet.Range("a1", _
   ActiveSheet.Range("a1").End(xlDown).End(xlToRight)).Select
				
   -hoặc-
				
ActiveSheet.Range("a1:" & _
   ActiveSheet.Range("a1").End(xlDown).End(xlToRight).Address).Select
				
Trong một số trường hợp, bạn có thể chọn các ô từ A1 đến C6. Trong mẫu này, phương pháp CurrentRegion sẽ không hoạt động bởi dòng trống trên Hàng 5. Các mẫu sau sẽ chọn tất cả các ô:
lastCol = ActiveSheet.Range("a1").End(xlToRight).Column
lastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).Row
ActiveSheet.Range("a1", ActiveSheet.Cells(lastRow, lastCol)).Select
				
    -hoặc-
				
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. Cách Chọn Nhiều Cột Không Tiếp giáp Có Chiều dài Khác nhau

Để chọn nhiều cột không tiếp giáp có chiều dài khác nhau, sử dụng bảng mẫu và mẫu macro sau:
   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"
Đặt a = Range(StartRange, Range(StartRange).End(xlDown))
Đặt b = Range(EndRange, Range(EndRange).End(xlDown))
Union(a,b).Select
				
Khi mã này được sử dụng cùng bảng mẫu, các ô A1:A3 và C1:C6 sẽ được chọn.

CÁC LƯU Ý VỚI MẪU

  • Thuộc tính Kích hoạt Trang có thể luôn bị bỏ sót, bởi nó sẽ bị ẩn nếu không đặt tên trang cụ thể. Ví dụ, thay vì
    ActiveSheet.Range("D5").Select
    						
    bạn có thể sử dụng:
    Range("D5").Select
    						
  • Thuộc tính Kích hoạt Sổ làm việc cũng có thể luôn bị sót. Sổ làm việc đang hoạt động sẽ ẩn trừ khi sổ làm việc cụ thể được đặt tên.
  • Khi bạn sử dụng phương pháp Application.Goto, nếu bạn muốn sử dụng hai phương pháp Ô nằm trong phương pháp Dải ô khi dải ô cụ thể nằm trên trang tính khác (không phải trang tính đang hoạt động), bạn phải bao gồm đối tượng Trang mỗi lần. Ví dụ:
    Application.Goto Sheets("Sheet1").Range( _
          Sheets("Sheet1").Range(Sheets("Sheet1").Cells(2, 3), _
          Sheets("Sheet1").Cells(4, 5)))
    					
  • Với mỗi mục trong dấu ngoặc kép (ví dụ, dải ô đã đặt tên "Test"), bạn cũngcó thể sử dụng biến số có giá trị là chuỗi văn bản. Ví dụ, thay vì
    ActiveWorkbook.Sheets("Sheet1").Activate
    						
    bạn có thể sử dụng
    ActiveWorkbook.Sheets(myVar).Activate
    						
    giá trị của myVar nằm trong "Sheet1".

THAM KH?O


Để biết thêm thông tin về cách sử dụng mã mẫu trong bài viết này, bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
290140 Cách chạy mã mẫu cho chương trình Office XP từ bài viết trong Cơ sở Kiến thức (Bài viết này có thể chứa liên kết tới nội dung tiếng Anh (chưa được dịch)).

Thu?c tính

ID c?a bài: 291308 - L?n xem xét sau cùng: 02 Tháng Ba 2008 - Xem xét l?i: 6.1
Áp d?ng
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
T? khóa: 
kbhowto kbmacro kbprogramming kbautomation kbdtacode KB291308

Cung cấp Phản hồi