Excel VBA lấy tên bảng
Nếu bạn muốn lưu trữ địa chỉ ô (ví dụ ô "A3") trong một biến rồi sử dụng nó để lấy tên bảng Show
Hoặc, nếu bạn muốn lưu chính ô đó dưới dạng một đối tượng phạm vi trong một biến Đối với một nhà phân tích dữ liệu, Bảng Excel là một điều cần thiết. Chúng là cách hiệu quả nhất để sắp xếp dữ liệu thô của bạn và đề cập đến dữ liệu thu hẹp hoặc mở rộng một cách thường xuyên. Tương tự như vậy, các bảng Excel có thể cực kỳ hữu ích khi kết hợp với VBA. Cá nhân tôi sử dụng bảng dữ liệu như một cách để lưu trữ cài đặt người dùng mà không phải sửa đổi bất kỳ mã VBA nào. Bạn có thể xem các ví dụ về điều này trong Mẫu Trình xuất của tôi, nơi tôi sử dụng các bảng để lưu tên trang tính và địa chỉ email. Trong bài viết này, tôi muốn tập hợp tất cả các cách phổ biến để tham chiếu dữ liệu bảng bằng VBA vào một nơi. Hy vọng rằng đây sẽ là hướng dẫn mà bạn có thể xem đi xem lại để có thể kết hợp các bảng vào mã hóa macro VBA của mình một cách dễ dàng và hiệu quả. Vui thích Mục Liên kết nhanh
Tổng quan về bảng ExcelBảng là gì?Bảng chỉ đơn giản là một phạm vi có cấu trúc nơi bạn có thể tham chiếu đến các phần khác nhau được ánh xạ tự động (chẳng hạn như Hàng tiêu đề hoặc cột bên dưới tiêu đề "Số tiền"). Bảng là một tính năng tuyệt vời mà Microsoft đã thêm vào Excel vì chúng không chỉ cấu trúc dữ liệu của bạn mà còn mở rộng cùng với dữ liệu của bạn khi dữ liệu phát triển. Và nếu có một điều bạn nên biết về việc tạo bảng tính, thì đó là làm cho nó NĂNG ĐỘNG nhất có thể luôn là một điều tốt Bạn có thể nhanh chóng tạo Bảng bằng cách đánh dấu một phạm vi (có tiêu đề phù hợp) và sử dụng phím tắt Ctrl + t. Bạn cũng có thể điều hướng đến tab Chèn và chọn nút Bảng trong nhóm Bảng Các bộ phận của bảngInfographic dưới đây sẽ giúp bạn hình dung các phần khác nhau của một đối tượng Table qua lăng kính của ngôn ngữ lập trình VBA Các phần này của Bảng ListObject bao gồm
Làm cách nào để tìm các bảng hiện có?Các bảng có thể hơi khó tìm nếu bạn không quen làm việc với chúng vì chúng có thể kết hợp rất tốt với bảng tính tùy thuộc vào định dạng đã được áp dụng Hãy xem xét 4 cách khác nhau để bạn có thể xác định xem bạn có đang làm việc với các ô trong Đối tượng Bảng hay không 1. Tab Thiết kế bảng xuất hiệnNếu bạn bấm vào trong một ô là một phần của Bảng Excel, bạn sẽ thấy ngay tab Thiết kế Bảng xuất hiện trong Dải băng. Đây là một tab theo ngữ cảnh, có nghĩa là nó chỉ xuất hiện khi một đối tượng cụ thể được chọn trên bảng tính của bạn (một tab tương tự xuất hiện khi Bảng Pivot hoặc Hình dạng được chọn trên bảng tính) Xem kích thước đầy đủ Đây là một dấu hiệu nhận biết rất nhanh rằng ô bạn đang làm việc là một phần của Đối tượng Bảng 2. Chỉ báo góc xanhCó một chỉ báo nhỏ ở ô dưới cùng bên phải của phạm vi Bảng để cho biết có một bảng. Như bạn có thể thấy trong hình bên dưới, chỉ báo này có thể rất dễ tìm, nhưng cũng có thể dễ dàng bị bỏ qua do kích thước nhỏ của nó 3. Sử dụng Trình quản lý tên của ExcelMột cách tuyệt vời khác để tìm một bảng (và tên của nó) là vào Trình quản lý tên. Bạn có thể truy cập trình quản lý tên bằng cách điều hướng đến tab Công thức và nhấp vào nút Trình quản lý tên bên trong nhóm Tên được xác định Bằng cách sử dụng menu Bộ lọc ở góc bên phải của Trình quản lý Tên, bạn có thể thu hẹp danh sách tên của mình chỉ còn các Bảng trong Sổ làm việc. Trình quản lý tên sẽ hiển thị cho bạn chính xác vị trí của các bảng trong bảng tính và cả tên Bảng là gì 4. Mã VBA để kiểm tra xem ô có nằm trong bảng ListObject khôngCó thể có những trường hợp khi bạn cần xác định xem một ô nhất định có nằm trong ListObject (Bảng) hay không. Mã VBA bên dưới chỉ cho bạn cách bạn có thể thực hiện kiểm tra xem ActiveCell (ô đã chọn) có phải là một phần của bất kỳ Bảng Excel nào trên bảng tính hay không Sub IsActiveCellInTable() Đây là một thử nghiệm xác thực tuyệt vời nếu bạn đang tạo mã cho phép người dùng thao tác trên bảng excel. Tôi đã sử dụng điều này nhiều lần để tạo các nút cho phép người dùng chèn hoặc xóa các hàng cụ thể trong bảng dựa trên vị trí họ chọn trên trang tính được bảo vệ bằng mật khẩu Chọn vùng của bảng bằng VBASelectVBA CodingEntire TableActiveSheet. ListObjects("Bảng1"). Phạm vi. SelectTable Header RowActiveSheet. ListObjects("Bảng1"). Tiêu ĐềHàngPhạm Vi. SelectTable DataActiveSheet. ListObjects("Bảng1"). Dữ LiệuCơ ThểPhạm Vi. SelectThird ColumnActiveSheet. ListObjects("Bảng1"). Danh sáchCột(3). Phạm vi. SelectThird Column (Data Only)ActiveSheet. ListObjects("Bảng1"). Danh sáchCột(3). Dữ LiệuCơ ThểPhạm Vi. Chọn Select Row 4 của Table Data ActiveSheet. ListObjects("Bảng1"). ListRows(4). Phạm vi. Chọn Chọn tiêu đề thứ 3 ActiveSheet. ListObjects("Bảng1"). HeaderRowRange(3). Chọn Chọn Điểm dữ liệu trong Hàng 3, Cột 2 ActiveSheet. ListObjects("Bảng1"). DataBodyRange(3, 2). SelectSubtotalsActiveSheet. ListObjects("Bảng1"). Tổng sốHàngRange. Lựa chọn Chèn hàng và cột vào bảngSelectVBA CodingChèn một cột mới 4ActiveSheet. ListObjects("Bảng1"). Danh sáchCột. Thêm vị trí. =4Chèn cột vào cuối bảngActiveSheet. ListObjects("Bảng1"). Danh sáchCột. AddInsert Row Trên Row 5ActiveSheet. ListObjects("Bảng1"). Danh sáchRows. Thêm (5)Thêm hàng vào cuối bảngActiveSheet. ListObjects("Bảng1"). Danh sáchRows. Thêm LuônChèn. = True Thêm Tổng số Hàng ActiveSheet. ListObjects("Bảng1"). ShowTotals = Đúng Xóa các phần khác nhau của bảngSub RemovePartsOfTable() Xóa/xóa dữ liệu trong bảngXóa tất cả các hàng dữ liệu khỏi một bảng (trừ hàng đầu tiên) Sub ResetTable() Nếu bạn có các công thức trong bảng của mình, bạn có thể muốn giữ nguyên các công thức đó. Sửa đổi sau đây sẽ chỉ xóa các giá trị không đổi khỏi hàng đầu tiên còn lại trong Đối tượng bảng Sub ResetTable() Lặp qua từng cột hoặc hàng của bảngSub LoopingThroughTable() Áp dụng sắp xếp cho cột trong bảngBạn có thể thấy mình cần sắp xếp dữ liệu Bảng của mình theo thứ tự Tăng dần hoặc Giảm dần. Đoạn mã VBA sau đây sẽ chỉ cho bạn cách sắp xếp một cột trong Bảng ListObject của bạn theo một trong hai thứ tự Sub PSorTableColumn() Mặc dù mã VBA ở trên có tất cả các tùy chọn tiềm năng được viết ra để bạn điều chỉnh, nhưng hầu hết thời gian bạn sẽ không cần phải rời khỏi các tùy chọn sắp xếp mặc định Dưới đây là cùng một mã, nhưng với tất cả các tùy chọn mà bạn có thể không cần phải thay đổi giá trị cài đặt mặc định của chúng đã bị xóa Sub SortTableColumn_Simple() Tra cứu các giá trị trong một bảngNếu bạn đang lưu trữ các giá trị bên trong Bảng, có thể có các tình huống mà bạn muốn tra cứu hoặc tìm một giá trị. Có nhiều tình huống tra cứu khác nhau mà người ta có thể gặp phải, nhưng để đơn giản, tôi sẽ cung cấp một ví dụ chung. Đoạn mã sau sẽ tìm một chuỗi ID trong cột đầu tiên của một bảng cụ thể và trả về số hàng của bảng ID đó. Hy vọng rằng bạn có thể sử dụng logic trong ví dụ này và áp dụng nó vào nhu cầu cụ thể của mình Sub LookupTableValue() Lưu trữ dữ liệu bảng trong một biến mảngLấy dữ liệu từ các bảng là một chiến thuật tuyệt vời để kết hợp với mã hóa VBA của bạn. Bàn là lý tưởng bởi vì chúng
Một ví dụ về việc sử dụng Bảng làm nguồn dữ liệu trong macro được hiển thị trong một trong các đoạn mã Code Vault của tôi. Đoạn mã này cho phép bạn lọc dữ liệu của mình dựa trên các từ trong một bảng cụ thể. Có rất nhiều cách khác nhau mà bạn có thể sử dụng bảng để lưu trữ cài đặt và tùy chọn động cho macro của mình. Đoạn mã dưới đây chỉ cho bạn cách tải dữ liệu từ một cột và bảng nhiều cột Bảng cột đơnSub SingleColumnTable_To_Array() Bảng nhiều cộtSub MultiColumnTable_To_Array() Thay đổi kích thước bảngNếu cần, bạn có thể thay đổi kích thước kích thước của bảng bằng cách khai báo một vùng phạm vi mới để bảng Excel thu nhỏ hoặc mở rộng. Dưới đây là một vài ví dụ cho thấy cách bạn có thể thực hiện loại điều chỉnh kích thước này (Xin gửi lời cảm ơn đặc biệt đến Peter Bartholomew vì đã yêu cầu điều này trên LinkedIn) Sub ResizeTable() Thay đổi tất cả tính toán tổng số hàng của bảngSub ChangeAllColumnTotals() Lấy ActiveTableCó thể có những trường hợp bạn muốn tạo macro cá nhân định dạng bảng đã chọn của mình theo một cách nhất định hoặc thêm các cột tính toán nhất định. Vì các nhà phát triển Excel không tạo lệnh ActiveTable bằng ngôn ngữ VBA của họ nên bạn không có cách nào đơn giản để thao tác với bảng do người dùng chọn. Nhưng với một chút sáng tạo, bạn có thể tạo biến ListObject ActiveTable của riêng mình và làm bất cứ điều gì bạn muốn với bảng đã chọn Sub DefineActiveTable() Người học trực quan?Xem kích thước đầy đủ Ảnh chụp màn hình từ một trong các tab trong tệp có thể tải xuống Sau nhiều yêu cầu, tôi đã tập hợp một sổ làm việc tương tác nhỏ thú vị sẽ cho bạn thấy một loạt mã được mô tả trong bài viết này thực sự hoạt động như thế nào trên một bảng tính. Nó cũng phục vụ như một tài liệu tham khảo tốt mà bạn có thể lưu vào máy tính của mình để bạn không phải tiếp tục tìm kiếm trên Google về Bảng Excel bất cứ khi nào có điều gì đó lướt qua tâm trí của bạn. Tải xuống tệp Excel mẫuNếu bạn muốn lấy một bản sao của tệp Excel mà tôi đã sử dụng trong suốt bài viết này, vui lòng tải xuống trực tiếp bảng tính bằng cách nhấp vào nút tải xuống bên dưới Tải xuống tệp ví dụ Các bài viết thú vị hơn về bảng Excel
Bất cứ điều gì khác về các bảng tôi đã bỏ lỡ?Bạn đã đến trang này để cố gắng tìm hiểu cách thực hiện điều gì đó với bảng VBA và Excel và nó không được đề cập? . Nếu thấy hợp lý, hãy thêm nó vào hướng dẫn này và chắc chắn sẽ thêm nó vào nội dung. Tôi mong được đọc những suy nghĩ và/hoặc đề xuất của bạn Giới thiệu về tác giảchào bạn. Tôi là Chris và tôi điều hành trang web TheSpreadsheetGuru khi rảnh rỗi. Ban ngày, tôi thực sự là một chuyên gia tài chính phụ thuộc khá nhiều vào Microsoft Excel trong thế giới doanh nghiệp. Tôi thích lấy những điều tôi học được trong “thế giới thực” và chia sẻ chúng với mọi người ở đây trên trang web này để bạn cũng có thể trở thành chuyên gia bảng tính tại công ty của mình Qua nhiều năm làm việc trong thế giới doanh nghiệp, tôi đã có thể nắm bắt các cơ hội để làm việc với Excel tốt hơn và đã xây dựng nhiều phần bổ trợ Excel khác nhau, từ việc chèn ký hiệu dấu tích đến tự động sao chép/dán từ Excel sang PowerPoint. Nếu bạn muốn cập nhật những tin tức mới nhất về Excel và nhận trực tiếp các mẹo Excel có ý nghĩa nhất mà tôi đã học được qua email trong nhiều năm, bạn có thể đăng ký nhận bản tin miễn phí của tôi. Tôi hy vọng tôi có thể cung cấp cho bạn một số giá trị ngày hôm nay và hy vọng sẽ sớm gặp lại bạn ở đây. - Chris Bạn có thể tham khảo một bảng trong VBA không?Trong VBA, bảng có thể được tham chiếu như thể nó là một đối tượng phạm vi tiêu chuẩn .
Tên bảng trong Excel là gì?Khi bạn tạo bảng Excel, Excel sẽ tạo tên bảng mặc định ( Bảng1, Bảng2, v.v.) nhưng bạn có thể thay đổi . Chọn bất kỳ ô nào trong bảng để hiển thị tab Công cụ bảng > Thiết kế trên dải băng. Nhập tên bạn muốn vào hộp Tên bảng, rồi nhấn Enter.
ListObject trong Excel VBA là gì?VBA ListObject là một cách tham chiếu đến các bảng Excel khi viết mã VBA . Sử dụng VBA LISTOBJECTS, chúng ta có thể tạo và xóa các bảng cũng như thao tác với các Bảng Excel trong mã VBA. |