Computer >> Hướng Dẫn Máy Tính >  >> Phần Mềm >> Office

Thành thạo thao tác Range VBA theo số cột trong Excel – 4 phương pháp đã chứng minh

Trong bài viết này, bạn sẽ học cách sử dụng Range để làm các nhiệm vụ khác nhau trong Excel dựa trên số cột với VBA.

Tải xuống tệp thực hành

Bạn có thể tải xuống tệp Excel thực hành miễn phí từ đây.

Đối tượng Range VBA

Đối tượng Range trong VBA có thể chứa một ô đơn lẻ, nhiều ô, hàng, cột trong trang tính Excel.

Sơ đồ phân cấp của đối tượng Range như bên dưới.

Application > Workbook > Worksheet > Range

Đây là cách bạn nên khai báo đối tượng Range trong VBA.

Thành thạo thao tác Range VBA theo số cột trong Excel – 4 phương pháp đã chứng minh

4 phương pháp nhúng VBA để sử dụng Range dựa trên số cột trong Excel

Phần này sẽ thảo luận cách chọn phạm vi dựa trên số cột, cách đặt giá trị trong phạm vi dựa trên số cột và cách trả về số cột cuối cùng của phạm vi trong Excel sử dụng VBA macro.

1. VBA chọn phạm vi dựa trên số cột trong Excel

Nếu bạn muốn chọn phạm vi dựa trên số cột trong Excel từ tập dữ liệu mờ như hình bên dưới, thì bạn nên tiếp tục đọc bài viết này để nhận giải pháp.

Thành thạo thao tác Range VBA theo số cột trong Excel – 4 phương pháp đã chứng minh

Các bước để chọn phạm vi từ tập dữ liệu hiển thị trên sử dụng số cột được mô tả dưới đây.

Các bước:

  • Nhấn Alt + F11 trên bàn phím hoặc đi đến tab Developer -> Visual Basic để mở Visual Basic Editor.

Thành thạo thao tác Range VBA theo số cột trong Excel – 4 phương pháp đã chứng minh

  • Trong cửa sổ mã bật lên, từ thanh menu, nhấp Insert -> Module.

Thành thạo thao tác Range VBA theo số cột trong Excel – 4 phương pháp đã chứng minh

  • Sao chép mã sau và dán vào cửa sổ mã.
Sub SetRange() Range(Cells(2, 3), Cells(10, 5)).Select End Sub

Ở đây,

  • Cells(2,3) = hàng 2, cột 3 (Ô C2)
  • Cells(10,5) = hàng 10, cột 5 (Ô E10)

Mã của bạn hiện đã sẵn sàng để chạy.

Thành thạo thao tác Range VBA theo số cột trong Excel – 4 phương pháp đã chứng minh

  • Nhấn F5 trên bàn phím hoặc từ thanh menu chọn Run -> Run Sub/UserForm. Bạn cũng có thể chỉ nhấp vào biểu tượng Play nhỏ trong thanh menu phụ để chạy macro.

Thành thạo thao tác Range VBA theo số cột trong Excel – 4 phương pháp đã chứng minh

Phạm vi ô từ C2 đến E10 sẽ được chọn (xem hình bên dưới) dựa trên số cột mà chúng ta cung cấp.

Thành thạo thao tác Range VBA theo số cột trong Excel – 4 phương pháp đã chứng minh

Đọc thêm: VBA Range với số hàng biến đổi trong Excel (4 ví dụ)

2. VBA đặt giá trị trong phạm vi dựa trên số cột trong Excel

Bạn đã học cách chọn phạm vi dựa trên số cột trong phần trước. Trong phần này, bạn sẽ biết cách đặt giá trị trong phạm vi dựa trên số cột.

Các bước:

  • Cùng cách như trước, mở Visual Basic Editor từ tab Developer và Insert một Module trong cửa sổ mã.
  • Trong cửa sổ mã, sao chép mã sau và dán nó.
Sub SetValue() Range(Cells(2, 2), Cells(8, 4)).Value2 = "Hello!" End Sub

Ở đây,

  • Cells(2,2) = hàng 2, cột 2 (Ô B2)
  • Cells(8,4) = hàng 8, cột 4 (Ô D8)

Mã của bạn hiện đã sẵn sàng để chạy.

Thành thạo thao tác Range VBA theo số cột trong Excel – 4 phương pháp đã chứng minh

  • Run macro và tất cả ô từ B2 đến D8 bây giờ giữ giá trị "Hello!"

Thành thạo thao tác Range VBA theo số cột trong Excel – 4 phương pháp đã chứng minh

Đọc thêm: Excel VBA: Đặt Range theo số hàng và cột (3 ví dụ)

Đọc tương tự

  • Excel VBA: Lấy số hàng và cột từ địa chỉ ô (4 phương pháp)
  • Cách tham chiếu ô theo số hàng và cột trong Excel (4 phương pháp)
  • VBA cho mỗi ô trong Range trong Excel (3 phương pháp)
  • Cách chuyển đổi số cột thành chữ cái trong Excel (3 cách)
  • VBA đặt Range trong Excel (7 ví dụ)

3. VBA chọn phạm vi từ trang tính khác dựa trên số cột trong Excel

Ở đây bạn sẽ học cách chọn phạm vi dựa trên số cột từ một trang tính khác trong Excel.

Các bước làm như vậy được hiển thị bên dưới.

Các bước:

  • Cùng cách như trước, mở Visual Basic Editor từ tab Developer và Insert một Module trong cửa sổ mã.
  • Trong cửa sổ mã, sao chép mã sau và dán nó.
Sub FixedRange() Dim iRng As Range Dim iSheet As Worksheet Set iSheet = Worksheets("Range") 'select the worksheet name" With iSheet .Cells(1, 7).Select 'selects cell G7 on worksheet Set iRng = .Range(.Cells(3, 3), .Cells(7, 6)) End With iRng.Select 'selects range of cells C3:F7 on worksheet End Sub

Ở đây,

  • Cells(3,3) = hàng 3, cột 3 (Ô C3)
  • Cells(7,6) = hàng 7, cột 6 (Ô F7)

Mã của bạn hiện đã sẵn sàng để chạy.

Thành thạo thao tác Range VBA theo số cột trong Excel – 4 phương pháp đã chứng minh

  • Run mã và tất cả ô từ C3 đến F7 từ tên trang tính "Range" sẽ được chọn (xem hình bên dưới) dựa trên số cột mà chúng ta cung cấp.

Thành thạo thao tác Range VBA theo số cột trong Excel – 4 phương pháp đã chứng minh

Đọc thêm: VBA chuyển đổi số cột thành chữ cái trong Excel (3 phương pháp)

4. VBA trả về số cột cuối cùng trong phạm vi trong Excel

Trong phần này, chúng ta sẽ học về mã VBA về cách lấy số cột cuối cùng trong phạm vi hoạt động trong Excel.

Xét tập dữ liệu sau có dữ liệu từ Ô A1 đến D10. Chúng ta sẽ trích xuất số cột cuối cùng từ phạm vi trong hộp Return, Ô F5.

Các bước làm như vậy được đưa ra bên dưới.

Các bước:

  • Cùng cách như trước, mở Visual Basic Editor từ tab Developer và Insert một Module trong cửa sổ mã.
  • Trong cửa sổ mã, sao chép mã sau và dán nó.
Sub ReturnLastColumnInRange() 'declare variables Dim iSheet As Worksheet Dim iRng As Range Set iWS = Worksheets("Return") 'select the worksheet Set iRng = iWS.Range("A1:D10") 'set the range 'return the last column number in a cell iWS.Range("F5") = iRng.Column + iRng.Columns.Count - 1 End Sub

Mã của bạn hiện đã sẵn sàng để chạy.

Thành thạo thao tác Range VBA theo số cột trong Excel – 4 phương pháp đã chứng minh

  • Run macro và bạn sẽ nhận được số cột cuối cùng, 4, trong Ô F5.

Thành thạo thao tác Range VBA theo số cột trong Excel – 4 phương pháp đã chứng minh

Đọc thêm: Cách trả về số cột khớp trong Excel (5 cách hữu ích)

Lợi thế của VBA Set Range

  • Rất dễ triển khai.
  • Các đối số bên trong đối tượng Range không cố định. Vì vậy chúng ta có thể sửa đổi giá trị đối số theo nhu cầu.
  • Nhiều hơn 1 giá trị có thể truyền làm đối số.

Điều cần nhớ

  • CELLS properties trong VBA cũng có thể dùng để đặt Range trong VBA.
  • Các biến đối tượng nên được đặt làm tham chiếu của đối tượng bằng từ khóa SET.

Kết luận

Bài viết này đã chỉ cho bạn cách sử dụng Range để làm các nhiệm vụ khác nhau trong Excel dựa trên số cột với VBA. Tôi hy vọng bài viết này đã rất có lợi cho bạn. Đừng ngần ngại hỏi bất kỳ câu hỏi nào về chủ đề.

Bài viết liên quan

  • Cách chọn Range dựa trên giá trị ô VBA (7 cách)
  • Excel VBA Copy Range sang trang tính khác (8 cách dễ dàng nhất)
  • Lỗi Excel Subscript Out of Range trong VBA (với 5 giải pháp)
  • [Đã sửa!] Cột Excel được gán nhãn bằng số không phải chữ cái
  • Cách chuyển đổi chữ cái cột thành biểu đồ số trong Excel (4 cách)