Bảng (Table) là một trong những đối tượng quan trọng và phổ biến nhất chúng ta dùng khi làm việc với VBA trong Excel. Trong bài viết này, tôi sẽ chỉ cho bạn cách sử dụng Bảng Excel với VBA.
9 Cách Sử Dụng Bảng Excel với VBA
Một bảng là kiểu bộ dữ liệu đặc biệt trong Excel nơi hàng đầu chứa tiêu đề.

Trong VBA, nó thuộc danh mục ListObject. Đây là các cách bạn có thể dùng Bảng Excel trong VBA.
1. Tạo Bảng với VBA trong Excel
Trước hết, học cách tạo Bảng với VBA trong Excel.
Để tạo Bảng với VBA trong Excel, trước hết khai báo Bảng là ListObject.
Sau đó chèn Bảng vào phạm vi mong muốn.
Dim Table1 as ListObject
Set Table1 = ActiveSheet.ListObjects.Add(xlSrcRange, Range("B4:D13"), , xlYes)
[Ở đây Table1 là tên Bảng trong VBA và B4:D13 là phạm vi trong trang tính hoạt động nơi muốn bảng. Bạn dùng bất cứ thứ gì thích.]

Chạy mã này. Nó tạo Bảng trong phạm vi B4:D13 trang tính hoạt động.

Nay nếu muốn, có thể đổi tên bảng thành bất cứ thứ gì thích.
Table1.Name = "MyTable"

Nó đổi tên bảng thành MyTable.

Đọc thêm: Tạo Bảng trong Excel bằng Phím tắt
2. Tham chiếu đến Bảng Excel với VBA
Chúng ta đã học tạo Bảng với VBA trong Excel.
Bây giờ để tham chiếu Bảng đã tạo trong Excel, trước hết khai báo Bảng là ListObject.
Sau đó tham chiếu Bảng với tên có sẵn trong Excel.
Dim Table1 As ListObject
Set Table1 = ActiveSheet.ListObjects("MyTable")

Nó tham chiếu bảng "MyTable" trong Excel với tên Table1.

Đọc thêm: Cách Sử dụng Tham chiếu Bảng Excel
3. Nhập Giá Trị vào Bảng với VBA trong Excel
Để nhập giá trị vào Bảng, trước hết tham chiếu Bảng.
Sau đó nhập giá trị vào ô dùng thuộc tính Range.Cells của VBA.
Dim Table1 As ListObject
Set Table1 = ActiveSheet.ListObjects("MyTable")
Table1.Range.Cells(2, 1) = "A Tale of Two Cities"

Chạy mã này. Nó nhập chuỗi "A Tale of Two Cities" vào hàng 2 cột 1 của bảng MyTable trang tính hoạt động.

4. Chèn Hàng và Cột vào Bảng với VBA trong Excel
Để chèn hàng hoặc cột vào Bảng với VBA, trước hết tham chiếu Bảng.
Sau đó để thêm hàng chèn thuộc tính ListRows.Add.
Dim Table1 As ListObject
Set Table1 = ActiveSheet.ListObjects("MyTable")
Table1.ListRows.Add

Nó thêm hàng mới vào cuối bảng MyTable.

Hoặc để thêm cột, chèn thuộc tính ListColumns.Add.
Dim Table1 As ListObject
Set Table1 = ActiveSheet.ListObjects("MyTable")
Table1.ListColumns.Add

Nó thêm cột mới bên phải bảng MyTable.

Lại, để thêm hàng hoặc cột tại vị trí cụ thể của Bảng, chỉ định vị trí trong thuộc tính ListRows.Add hoặc ListColumns.Add.
Dim Table1 As ListObject
Set Table1 = ActiveSheet.ListObjects("MyTable")
Table1.ListRows.Add (4)

Nó thêm hàng mới làm hàng 4 của bảng MyTable.

Tương tự cho thêm cột mới.
Đọc thêm: Cách Chèn hoặc Xóa Hàng và Cột từ Bảng Excel
5. Đọc Dữ liệu từ Bảng với VBA
Để đọc dữ liệu từ bảng với VBA, dùng thuộc tính Range.Cells của VBA.
Dim Table1 As ListObject
Set Table1 = ActiveSheet.ListObjects("MyTable")
MsgBox Table1.Range.Cells(3, 1)

Chạy mã, nó hiển thị giá trị từ hàng 3 cột 1 của bảng MyTable. Đó là The Forty Rules of Love.

Bài đọc tương tự
- VBA Làm mới Pivot Table trong Excel (5 Ví dụ)
- Cách Làm mới Tất cả Pivot Tables với VBA (4 Cách)
- Sửa Pivot Table trong Excel (5 Phương pháp)
- Cách Cập nhật Phạm vi Pivot Table (5 Phương pháp Phù hợp)
6. Lặp qua Hàng hoặc Cột của Bảng với VBA
Để lặp qua từng hàng của bảng với VBA, dùng thuộc tính ListRows.Count.
Dim Table1 As ListObject
Set Table1 = ActiveSheet.ListObjects("MyTable")
For i = 1 To Table1.ListRows.Count
Table1.ListRows(i).Range.Select
Next i

Nó lặp qua từng hàng của bảng Table1 và chọn nó.
Tương tự, để lặp qua từng cột của bảng, dùng thuộc tính ListColumns.Count.
7. Tìm Giá trị Cụ thể trong Bảng
Để tìm giá trị cụ thể trong hàng hoặc cột của bảng với VBA, dùng DataBodyRange.Rows.Find hoặc DataBodyRange.Columns.Find thuộc tính của VBA.
Dim Table1 As ListObject
Set Table1 = ActiveSheet.ListObjects("MyTable")
Set Value = Table1.DataBodyRange.Columns(1).Find("Mother", LookAt:=xlWhole)
MsgBox Value

Nó tìm giá trị "Mother" ở cột 1 của bảng MyTable, trả về giá trị nếu tìm thấy.

8. Thay đổi Kích thước Bảng với VBA trong Excel
Để thay đổi kích thước bảng sang hình dạng mới, trước hết đặt Range (Phạm vi) nơi Bảng sẽ thay đổi.
Sau đó thay đổi kích thước Bảng sang Range đó.
Dim Table1 As ListObject
Set Table1 = ActiveSheet.ListObjects("MyTable")
Dim Rng As Range
Set Rng = Range("B4:C8")
Table1.Resize Rng

Nó trước đặt Range là B4:C8, sau đó thay đổi kích thước bảng MyTable sang Range mới đó.

9. Xóa Bảng với VBA trong Excel
Để xóa bảng với VBA, dùng thuộc tính Delete của VBA.
Dim Table1 As ListObject
Set Table1 = ActiveSheet.ListObjects("MyTable")
Table1.Delete

Nó xóa bảng MyTable khỏi trang tính hoạt động.
Lưu ý Quan trọng
Một Bảng là ListObject trong VBA. Nhưng nếu muốn truy cập như đối tượng Range đơn giản, dùng thuộc tính Table.Range của VBA. Nó trả về bảng như đối tượng Range, và bạn truy cập được tất cả thuộc tính của đối tượng Range trong VBA.
Kết luận
Sử dụng các phương pháp này, bạn có thể dùng bảng với VBA. Có câu hỏi gì? Hãy hỏi chúng tôi.
Đọc thêm
- Cách Tự động Làm mới Pivot Table trong Excel (2 Phương pháp)
- Nhóm Cột trong Pivot Table Excel (2 Phương pháp)
- Nhóm Tùy chỉnh Pivot Table: Với 3 Tiêu chí
- Sử Dụng Công thức trong Bảng Excel Hiệu quả (Với 4 Ví dụ)