Trong workbook Excel có tập dữ liệu lớn, việc tham chiếu bảng bằng tên thay vì toàn bộ vùng rất tiện lợi. Dùng VBA trong Excel là phương pháp nhanh nhất, tin cậy và hiệu quả nhất để thực hiện mọi thao tác. Nếu bạn tìm kiếm thủ thuật đặc biệt về "cách tham chiếu bảng với Excel VBA", bạn đã đến đúng nơi. Có nhiều cách tham chiếu bảng trong Excel. Bài viết này sẽ thảo luận chi tiết các phương pháp. Hãy làm theo hướng dẫn hoàn chỉnh để nắm vững tất cả.
Tham Chiếu Bảng Với Thuộc Tính ListObject
Khi viết code VBA, ListObjects dùng để tham chiếu bảng Excel. Bảng Excel có thể tạo và xóa với VBA LISTOBJECTS. Việc sử dụng bảng Excel có thể thách thức người mới, và ở mức độ nhất định cả người trung cấp. Vì bài viết bàn về tham chiếu bảng Excel, việc hiểu tốt về Bảng trong Excel khi code VBA là rất quan trọng.
Ví dụ, để chọn toàn bộ bảng trong sheet Excel, viết code VBA sau:
ActiveSheet.ListObjects("Table_ref_1").Range.Select
Dòng code này sẽ chọn bảng ("Table_ref_1" là tên bảng trong dữ liệu của chúng ta).
20 Ví Dụ Phù Hợp Sử Dụng Tham Chiếu Bảng Trong Excel Với Code VBA
Phần sau sử dụng hai mươi ví dụ hiệu quả và thủ thuật để tham chiếu bảng trong Excel. Cần dùng code VBA. Đây là ngôn ngữ lập trình hướng sự kiện của Microsoft: Visual Basic for Applications (VBA). Để dùng tính năng này, trước hết cần tab Developer (Nhà phát triển) hiển thị trên Ribbon. Xem cách hiển thị tab Developer trên Ribbon. Phần này cung cấp chi tiết rộng rãi. Bạn nên học và áp dụng để nâng cao tư duy và kiến thức Excel. Chúng tôi dùng phiên bản Microsoft Office 365, bạn có thể dùng phiên bản khác tùy thích.
1. Chọn Toàn Bộ Bảng
Minh họa chọn toàn bộ bảng. Để tham chiếu bảng đã tạo trong Excel, trước hết phải khai báo bảng là ListObject. Sau đó tham chiếu bảng với tên có sẵn trong Excel. Dùng tập dữ liệu sau để demo.

📌 Các Bước:
- VBA có cửa sổ riêng. Chèn code vào cửa sổ này. Mở cửa sổ VBA: tab Developer trên Ribbon → chọn Visual Basic từ nhóm Code.

- Module VBA chứa code trong Visual Basic Editor. Phần mở rộng .bcf. Tạo/sửa dễ dàng qua cửa sổ VBA editor. Chèn module: tab Insert trên VBA editor → click Module từ menu thả xuống.

- Module mới được tạo. Chọn module (nếu chưa chọn). Viết code sau:
Sub Select_whole_Table() ActiveSheet.ListObjects("Table_ref_1").Range.Select End Sub
- Lưu code.
- Bấm F5 hoặc menu Run → Run Sub/UserForm. Hoặc click icon Play nhỏ trên thanh sub-menu.

- Toàn bộ bảng được chọn như hình.

2. Sao Chép Toàn Bộ Bảng
Demo sao chép toàn bộ bảng. Dùng tập dữ liệu sau.

📌 Các Bước: (Tương tự mở VBA, chèn module)
Code:
Sub copy_whole_Table() ActiveSheet.ListObjects("Table_ref_18").Range.Copy End Sub
- Lưu code, bấm F5 hoặc Run.

- Toàn bộ bảng được sao chép.

3. Tham Chiếu Một Cột Của Bảng
Demo tham chiếu một cột bảng. Dùng tập dữ liệu:

Code:
Sub ReferenceEntireColumn() ActiveSheet.ListObjects("Table_ref").ListColumns("Seller").Range.Select End Sub
Kết quả: chọn toàn bộ cột "Seller" của bảng.

4. Lấy Giá Trị Từ Ô Trong Bảng
Demo lấy giá trị từ ô trong bảng. Dữ liệu:

Code:
Sub get_Value() Dim Table1 As ListObject Set Table1 = ActiveSheet.ListObjects("Table_ref_2") Set Value = Table1.DataBodyRange.Columns(1).Find("Sam", LookAt:=xlWhole) MsgBox Value End Sub
Kết quả: hộp thoại Message Box hiển thị giá trị tìm thấy.

5. Thêm Hàng Mới
Minh họa thêm hàng mới vào bảng hiện có. Dữ liệu:

Code:
Sub Entering_row() Dim Table1 As ListObject Set Table1 = ActiveSheet.ListObjects("Table_ref_3") Table1.ListRows.Add End Sub
Kết quả: hàng mới được thêm vào cuối bảng.

6. Thêm Cột Mới
Thêm cột mới vào bảng hiện có. Dữ liệu:

Code:
Sub Entering_Column() Dim Table1 As ListObject Set Table1 = ActiveSheet.ListObjects("Table_ref_4") Table1.ListColumns.Add End Sub
Kết quả: cột mới được thêm vào.

7. Lọc Bảng (Filter)
Demo lọc bảng trong Excel. Dữ liệu:

Code:
Sub Select_AutoFiltered_VisibleRows_NewSheet() ActiveSheet.ListObjects("Table_25").Range.AutoFilter _ Field:=2, Criteria1:="=Texas" End Sub
Kết quả: bảng được lọc theo điều kiện "Texas".

8. Xóa Hàng Và Cột Khỏi Bảng
Demo xóa hàng và cột từ bảng. Dữ liệu:

Code:
Sub delete_row_column() ActiveSheet.ListObjects("Table_ref_9").ListRows(2).Delete ActiveSheet.ListObjects("Table_ref_9").ListColumns(2).Delete End Sub
Kết quả: hàng 2 và cột 2 bị xóa.

9. Chọn Dữ Liệu Bảng Không Có Tiêu Đề Cột
Demo chọn dữ liệu bảng không bao gồm tiêu đề cột. Dữ liệu:

Code:
Sub ReferenceEntireColumnWithoutHeader() ActiveSheet.ListObjects("Table_ref_6").ListColumns("Seller").DataBodyRange.Select End Sub
Kết quả: chỉ chọn vùng dữ liệu (DataBodyRange) của cột "Seller".

10. Chọn Tiêu Đề Cột
Demo chọn tiêu đề cột. Dữ liệu:

Code:
Sub Selecting_Column_Header() ActiveSheet.ListObjects("Table_ref_7").HeaderRowRange(4).Select End Sub
Kết quả: chọn ô tiêu đề cột thứ 4.

11. Chọn Toàn Bộ Hàng
Demo chọn toàn bộ hàng. Dữ liệu:

Code:
Sub Selecting_row_entire() ActiveSheet.ListObjects("Table_ref_8").ListRows(3).Range.Select End Sub
Kết quả: chọn toàn bộ hàng thứ 3 của bảng.

12. Thay Đổi Kích Thước Vùng Của Bảng (Resize)
Demo thay đổi kích thước vùng bảng. Dữ liệu:

Code:
Sub resize() Dim Table1 As ListObject Set Table1 = ActiveSheet.ListObjects("Table_ref_5") Dim Rng As Range Set Rng = Range("B4:C8") Table1.Resize Rng End Sub
Kết quả: bảng được resize về vùng B4:C8.

13. Thay Đổi Kiểu Dáng Bảng (Table Style)
Demo thay đổi style bảng. Dữ liệu:

Code:
Sub ChangingTable1_Style() ActiveSheet.ListObjects("Table_ref_12").TableStyle = "TableStyleLight15" End Sub
Kết quả: bảng áp dụng style "TableStyleLight15".

14. Đặt Kiểu Dáng Mặc Định Cho Bảng
Demo đặt style mặc định. Dữ liệu:

Code:
Sub Setting_Default_Table1_Style() ActiveWorkbook.DefaultTableStyle = "TableStyleMedium2" End Sub
Kết quả: style mặc định workbook được đặt là "TableStyleMedium2".

15. Lặp Qua Tất Cả Ô Trong Bảng
Demo lặp qua tất cả ô trong bảng. Dùng thuộc tính ListRows.Count. Dữ liệu:

Code:
Sub Loopingthrough() Dim Table1 As ListObject Set Table1 = ActiveSheet.ListObjects("Table_ref_14") For i = 1 To Table1.ListRows.Count Table1.ListRows(i).Range.Select Next i End Sub
Kết quả: lần lượt chọn từng hàng dữ liệu của bảng.

16. Làm Hiện Tiêu Đề Bảng
Demo làm hiện tiêu đề bảng. Dữ liệu:

Code:
Sub Table_header_visible() ActiveSheet.ListObjects("Table_ref_15").ShowHeaders = True End Sub
Kết quả: dòng tiêu đề bảng hiển thị.

17. Đếm Hàng Và Cột
Demo đếm số hàng và cột từ bảng. Dữ liệu:

Code:
Sub counting_rows_columns() rowNumber = ActiveSheet.ListObjects("Table_ref_16").ListRows.Count columnNumber = ActiveSheet.ListObjects("Table_ref_16").ListColumns.Count MsgBox "Number of Rows: " & rowNumber & vbCrLf & _ "Number of Columns: " & columnNumber End Sub
Kết quả: hộp thoại hiển thị số hàng và số cột.

18. Kiểm Tra Tồn Tại Bảng Trong Sheet
Demo kiểm tra xem có bảng nào trong sheet không. Dữ liệu:

Code:
Sub Checking_If1_Table1_Exists() Dim ws1 As Worksheet Dim tbl1 As ListObject Dim tbl1Name As String Dim tbl1Exists As Boolean tbl1Name = "Table_ref_17" For Each ws1 In ActiveWorkbook.Worksheets For Each tbl1 In ws1.ListObjects If tbl1.Name = tb1lName Then tb1lExists = True End If Next tbl1 Next ws1 If tbl1Exists = True Then MsgBox "Table " & tb1lName & " Doesn’t Exists." Else MsgBox "Table " & tbl1Name & " Exists." End If End Sub
Kết quả: thông báo bảng có tồn tại hay không.

19. Chuyển Bảng Thành Vùng Thường (Normal Range)
Demo chuyển bảng thành vùng thường. Dữ liệu:

Code:
Sub Converting_Table1_To_NormalRange() ActiveSheet.ListObjects("Table_ref_11").Unlist End Sub
Kết quả: bảng trở thành vùng dữ liệu thường, giữ định dạng.

20. Xóa Bảng
Demo xóa bảng. Dữ liệu:

Code:
Sub delete_table_entire() Dim Table1 As ListObject Set Table1 = ActiveSheet.ListObjects("Table_ref_10") Table1.Delete End Sub
Kết quả: bảng bị xóa hoàn toàn.

Kết Luận
Đây là kết thúc phiên hôm nay. Tôi tin chắc từ giờ bạn có thể tham chiếu bảng với Excel VBA. Nếu có thắc mắc hoặc đề xuất, hãy chia sẻ ở phần bình luận dưới đây.
Đừng quên truy cập Exceldemy.com để tìm giải pháp các vấn đề Excel khác. Hãy tiếp tục học phương pháp mới và phát triển!
Đọc Thêm…
Thay Đổi Chữ Hoa/Thường Dùng Hàm Worksheet Và Excel VBA
[8 Mẹo] Làm Cho Bảng Excel Trông Đẹp!