VBA ListObjects - Hướng dẫn ListObject Bảng Excel trong Excel VBA

ListObjects trong VBA là gì?

Trong một bảng thông thường, những gì chúng ta thấy là một tập dữ liệu nhưng trong thuật ngữ VBA có nhiều thứ hơn như có phạm vi của tổng phạm vi danh sách dữ liệu, cột được gọi là cột danh sách và hàng được gọi là hàng danh sách, v.v. , vì vậy để truy cập thuộc tính này, chúng ta có một hàm có sẵn được gọi là Listobjects và được sử dụng với hàm trang tính.

VBA ListObject là một cách đề cập đến các bảng excel trong khi viết mã VBA. Bằng cách sử dụng VBA LISTOBJECTS, chúng ta có thể tạo, xóa bảng và hoàn toàn có thể sử dụng bảng excel trong mã VBA. Bảng Excel rất phức tạp, dành cho người mới bắt đầu và thậm chí ở một mức độ nào đó, người dùng trình độ trung cấp cũng cảm thấy khó khăn khi làm việc với bảng. Vì bài viết này nói về việc tham chiếu các bảng excel trong mã hóa VBA, tốt hơn hết bạn nên có kiến ​​thức tốt về các bảng trong excel.

Khi dữ liệu được chuyển đổi thành bảng, chúng tôi không còn làm việc với một dải ô nữa. Thay vào đó, chúng ta cần làm việc với phạm vi bảng, vì vậy trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách làm việc với bảng excel để viết mã VBA hiệu quả.

Tạo định dạng bảng bằng ListObjects trong Excel VBA

Ví dụ, hãy xem dữ liệu excel bên dưới.

Sử dụng mã VBA ListObject, chúng tôi sẽ tạo một định dạng bảng cho dữ liệu này.

  • Đối với dữ liệu này trước tiên, chúng ta cần tìm hàng & cột được sử dụng cuối cùng là gì, vì vậy hãy xác định hai biến để tìm ra điều này.

Mã:

Sub List_Objects_Example1 () Dim LR As Long Dim LC As Long End Sub
  • Để tìm hàng và cột được sử dụng cuối cùng, hãy sử dụng mã dưới đây.

Mã:

LR = Cells (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft) .Column
  • Bây giờ hãy xác định thêm một biến để giữ tham chiếu của dữ liệu.

Mã:

Dim Rng As Range
  • Bây giờ đặt tham chiếu cho biến này bằng cách sử dụng mã bên dưới.

Mã:

Đặt Rng = Cells (1, 1) .Resize (LR, LC)

Bây giờ chúng ta cần sử dụng phương thức VBA “ListObject.Add” để tạo một bảng và bên dưới là cú pháp của cùng một.

ListObject.Add (Nguồn, XlListObjectHasHeaders, Đích, TableStyleName)

Nguồn: Đây là không có gì cho phạm vi ô mà chúng tôi đang chèn bảng. Vì vậy, chúng tôi có thể cung cấp hai đối số ở đây, tức là “xlSrcRange”“xlSrcExternal”.

XlListObjectHasHeaders: Nếu bảng chèn dữ liệu có tiêu đề hoặc không. Nếu có, chúng tôi có thể cung cấp “xlYes”. Nếu không, chúng tôi có thể cung cấp “xlNo”.

Đích: Đây không là gì ngoài phạm vi dữ liệu của chúng tôi.

Kiểu bảng: Nếu bạn muốn áp dụng bất kỳ kiểu bảng nào, chúng tôi có thể cung cấp kiểu.

  • Ok, bây giờ trong trang tính đang hoạt động, chúng ta đang tạo bảng, vì vậy đoạn mã dưới đây sẽ tạo một bảng cho chúng ta.

Mã:

Dim Ws As Worksheet Set Ws = ActiveSheet Ws.ListObjects.Add xlSrcRange, xllistobjecthasheaders: = xlYes, Destination: = Rng
  • Sau đó, chúng ta cần đặt tên cho bảng này.

Mã:

Ws.ListObjects (1) .name = "EmpTable"
  • Dưới đây là mã đầy đủ để bạn tham khảo.

Mã:

Sub List_Objects_Example1 () Dim LR As Long Dim LC As Long LR = Cells (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft) .Column Dim Rng As Range Đặt Rng = Cells (1, 1) .Resize (LR, LC) Dim Ws As Worksheet Set Ws = ActiveSheet Ws.ListObjects.Add xlSrcRange, xllistobjecthasheaders: = xlYes, Destination: = Rng Ws.ListObjects (1) .name = " EmpTable "End Sub

Ok, hãy chạy mã và xem điều kỳ diệu.

Nó đã tạo bảng với dữ liệu được đề cập và đặt tên bảng là "EmpTable."

Định dạng bảng Excel với VBA ListObjects

Khi bảng Excel đã được tạo, chúng ta có thể làm việc với các bảng bằng cách sử dụng bộ sưu tập VBA ListObject.

  • Đầu tiên, xác định biến là “ListObject”.

Mã:

Sub List_Objects_Example2() Dim MyTable As ListObject End Sub
  • Now set the reference to this variable by using the table name.

Code:

Sub List_Objects_Example2() Dim MyTable As ListObject Set MyTable = ActiveSheet.ListObjects("EmpTable") End Sub

Now the variable “MyTable” holds the reference for the table “EmpTable.”

  • Enter the variable name and put a dot to see the properties and methods of the VBA ListObject.

For example, if we want to select the entire table, then we need to use the “Range” object, and under this, we need to use the “Select” method.

Code:

MyTable.Range.Select

This would select the entire data table, including the heading.

  • If you want to select only the contents of the table without headers, then we need to use “DataBodyRange.”

Code:

MyTable.DataBodyRange.Select

Like this, we can play around with tables.

  • Dưới đây là danh sách mã hoạt động để bạn tham khảo.

Mã:

Sub List_Objects_Example2 () Dim MyTable As ListObject Set MyTable = ActiveSheet.ListObjects ("EmpTable") MyTable.DataBodyRange.Select 'Để chọn dải dữ liệu không có tiêu đề MyTable.Range. Chọn' Để chọn dải dữ liệu có tiêu đề MyTable.HeaderRowRange.Select 'To Chọn hàng tiêu đề bảng MyTable.ListColumns (2) .Range.Select 'Để chọn cột 2 bao gồm tiêu đề MyTable.ListColumns (2) .DataBodyRange.Select' Để chọn cột 2 không có tiêu đề End Sub

Như thế này, chúng ta có thể sử dụng bộ sưu tập “ListObject” để chơi với các bảng excel.

Những điều cần ghi nhớ

  • VBA ListObject là tập hợp các đối tượng để tham chiếu bảng excel.
  • Để truy cập bộ sưu tập ListObject trước tiên, chúng ta cần xác định bảng tính mà chúng ta đang đề cập đến là gì.

thú vị bài viết...