Hướng dẫn sử dụng hàm UBound trong VBA để ghép các cột không liền kề

Nhã Linh
Nhã Linh
May 14 2021

Trong Excel, ta có thể dễ dàng copy paste các cột liền kề sang một phạm vi mới trong trang tính. Vậy còn với các cột không liền kề thì phải thao tác như thế nào? Trong bài viết ngày hôm nay, Gitiho sẽ giới thiệu đến các bạn hàm UBound trong VBA và cách sử dụng hàm này để tách các cột không liền kề sang phạm vi mới trong trang tính Excel.

Tuyệt đỉnh VBA - Viết code trong tầm tay

Cách sử dụng hàm UBound trong VBA ghép các cột Excel

Trước khi học code VBA Excel thực hiện thao tác tách và ghép các cột không liền kề, chúng ta cần nắm rõ cách thức hoạt động của VBA. Nếu bạn chưa hiểu về chức năng này thì hãy tìm hiểu để sử dụng kiến thức bài viết hiệu quả nhất nhé.

Xem thêm: Lập trình VBA trong Excel là gì?

Công thức hàm UBound trong VBA

Hàm UBound trong VBA có chức năng trả về kích thước của mảng với công thức như sau:

Ubound (arrayname, [dimension])

Trong đó:
  • arrayname là tên gọi của mảng biến số VBA Excel theo quy ước đặt tên biến chuẩn. Đây là đối số bắt buộc.
  • [dimension] là một số nguyên thể hiện kích thước theo ràng buộc phía trên của phạm vi. Chúng ta có thể sử dụng số 1 cho kích thước đầu tiên, số 2 cho lần thức hai, và tương tự với các số nguyên khác. Đây là đối số tùy chọn, nếu đối số bị bỏ qua thì Excel tự mặc định số 1.

Xem thêm: Tổng hợp các kiến thức về mảng dữ liệu trong lập trình VBA trên Excel

Cách sử dụng hàm UBound trong VBA ghép các cột Excel

Về bản chất, việc sử dụng hàm UBound trong VBA của chúng ta sẽ copy paste các cột Excel bằng cách thay đổi cấu trúc của mảng dữ liệu. Chúng ta sẽ tìm hiểu thao tác này qua một ví dụ cụ thể dưới đây.


Trong file Excel, chúng ta có một kho dữ liệu khổng lồ lên đến 349.000 dòng. Công việc cần làm là copy dữ liệu từ các cột A, B, C, E, F, G và dán vào phạm vi mới theo thứ tự hiển thị cột A, C, E, G, F, B.

Để làm được điều này, chúng ta mở cửa sổ VBA Excel bằng cách vào tab Developer > nhóm Code > Visual Basic. Sau khi tạo một Module mới, chúng ta điền vào đó bảng code sau đây:

Sub Resize2Darr()
    Dim InputArr As Variant, ColExport As Variant, ColVar As Variant, I As Long
    InputArr = Sheet1.Range("A1:G" & Sheet1.Cells(Sheet1.Rows.Count, "A").End(xlUp).Row).Value
    ColExport = [{1,3,5,7,6,2}]
    ReDim ColVar(1 To UBound(InputArr, 1), 1 To 1)
        For I = LBound(InputArr, 1) To UBound(InputArr, 1)
            ColVar(I, 1) = I 'Dien so thu tu
        Next
    Sheet1.Range("K1").Resize(UBound(InputArr, 1), UBound(ColExport, 1)) = Application.Index(InputArr, ColVar, ColExport)
End Sub
Trong đó:
  • Tại dòng ColExport, chúng ta nhập thứ tự các cột Excel cần hiển thị mới.
  • Tại công thức hàm UBound trong VBA, kích thước phạm vi mảng được xác định với kích thước là 1.

Xem thêm: HƯỚNG DẪN CÁCH VIẾT HÀM VBA TRONG EXCEL

Chúng ta đóng cửa sổ VBA Excel và quay lại giao diện trang tính. Tại đây, chúng ta nhấn vào ô đầu tiên trong phạm vi đặt dữ liệu mới và chạy Macro Resize2Darr.

Kết quả trang tính Excel sẽ hiển thị như sau:

Các cột A, B, C, E, F, G tại bảng dữ liệu ban đầu đã được sắp xếp lại theo thứ tự mới A, C, E, G, F, B tại vị trí cột K đến cột P.

Xem thêm: Hướng dẫn từng bước tạo Macro trong Excel

Tổng kết

Bằng cách sử dụng hàm UBound trong VBA, chúng ta đã có thể viết một code VBA Excel giúp copy paste các cột không liền kề trong Excel theo thứ tự mới. Để học thêm nhiều mẹo hữu ích trong quá trình thao tác với VBA, các bạn hãy đọc thêm các bài viết trên blog Gitiho và đăng kí khóa học Tuyệt đỉnh VBA với chúng mình ngay nhé.

Gitiho chúc các bạn thành công!

Tham khảo các bài viết khác về chủ đề VBA Excel tại đây:

Hướng dẫn tìm kiếm và lọc dữ liệu tự động bằng Textbox trong Excel VBA

Hướng dẫn hiện thẻ Developer để ghi Macro hoặc viết code VBA trong Excel

Unicode tiếng việt khi viết trong VBA

Hướng dẫn cách viết hàm VBA trong Excel

Cách sử dụng hàm MsgBox() để tạo hộp thông báo với VBA

0/5 - (0 bình chọn)

0/5 - (0 bình chọn)

Bài viết liên quan

Hướng dẫn về đối tượng Range trong VBA cơ bản

Hướng dẫn về đối tượng Range trong VBA cơ bản

Hướng dẫn cách dùng các toán tử logic AND, OR, NOT trong VBA

Hướng dẫn cách dùng các toán tử logic AND, OR, NOT trong VBA

Hướng dẫn cách gọi Sub trong VBA qua các ví dụ

Hướng dẫn cách gọi Sub trong VBA qua các ví dụ

Hướng dẫn cách viết các toán tử so sánh trong VBA

Hướng dẫn cách viết các toán tử so sánh trong VBA

Tìm kiếm bằng trình duyệt Google thật dễ dàng với VBA

Tìm kiếm bằng trình duyệt Google thật dễ dàng với VBA

Tìm kiếm bằng trình duyệt Google thật dễ dàng với VBA

Tìm kiếm bằng trình duyệt Google thật dễ dàng với VBA

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội