Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

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

Hỗ trợ dành cho Office 2003 đã kết thúc

Microsoft đã kết thúc hỗ trợ dành cho Office 2003 vào ngày 8 tháng 4 năm 2014. Thay đổi này đã ảnh hưởng đến các bản cập nhật phần mềm và các tùy chọn bảo mật của bạn. Tìm hiểu ý nghĩa của điều này với bạn và cách thực hiện để luôn được bảo vệ.

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)				
   -or-				
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").ActivateActiveSheet.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").ActivateActiveSheet.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 các 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").ActivateActiveSheet.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").ActivateRange("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").ActivateRange("Test").Select				

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

Để 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").ActivateActiveSheet.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").SelectSelection.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").SelectSelection.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
Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet1!C3:D4"))				
nhưng dòng này
Set 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.
   Đ1: 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).ColumnlastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).RowActiveSheet.Range("a1", ActiveSheet.Cells(lastRow, lastCol)).Select				
    -hoặc-				
lastCol = ActiveSheet.Range("a1").End(xlToRight).ColumnlastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).RowActiveSheet.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:
   Đ1: 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				
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
OfficeKBHowTo howto contiguous how to discontiguous non-contiguous nonadjacent non-adjacent  XL2003 XL2007 XL2010
Chú ý Đây là một bài viết "XUẤT BẢN NHANH" được tạo trực tiếp từ trong trung tâm hỗ trợ của Microsoft. Thông tin có trong tài liệu này được cung cấp nhằm trả lời các vấn đề mới xuất hiện. Do việc cung cấp nhanh chóng, tài liệu có thể có lỗi in ấn và có thể được sửa đổi bất kỳ lúc nào mà không cần thông báo. Hãy xem Điều khoản Sử dụng để xem xét thêm.
Thuộc tính

ID Bài viết: 291308 - Xem lại Lần cuối: 03/09/2014 01:20:00 - Bản sửa đổi: 3.0

  • Microsoft Office Excel 2003
  • Microsoft Office Excel 2007
  • Microsoft Excel 2010
  • kbautomation kbmacro kbdtacode kbhowto kbprogramming KB291308
Phản hồi