Từ điển VBA | Hướng dẫn làm việc với từ điển VBA trong Excel
Từ điển VBA trong Excel
Sử dụng VBA Dictionary, chúng ta có thể nhóm tất cả các loại dữ liệu trong một từ điển để có quyền truy cập vào tất cả các mục với một biến duy nhất. Chúng ta có thể sử dụng từ điển để tạo một bộ sưu tập các tổ hợp khóa-giá trị. Khi đối tượng được liên kết với các khóa, sau này, chúng ta có thể gọi chúng bằng cách sử dụng tên khóa.
Từ điển VBA rất khó tiếp cận nhưng chúng tôi sẽ cố gắng hết sức để giúp bạn dễ hiểu. Chúng ta có thể so sánh cả Từ điển và Bộ sưu tập trên cùng một quy mô nhưng một số từ điển VBA cung cấp một số chức năng không có sẵn với đối tượng Bộ sưu tập VBA.
Làm việc với Từ điển VBA
Để làm việc với VBA Dictionaries, điều đầu tiên chúng ta cần làm là đặt tham chiếu đối tượng thành 'Microsoft Scripting Runtime'.
Để thiết lập tham chiếu, hãy làm theo các bước dưới đây.
Bước 1: Vào Công cụ> Tham khảo.
Bước 2: Cuộn xuống và chọn tùy chọn 'Microsoft Scripting Runtime' sau đó nhấp vào ok.
Bây giờ chúng ta có thể truy cập VBA Dictionary với Scripting Library.
Bạn có thể tải xuống Mẫu Excel từ điển VBA này tại đây - Mẫu Excel từ điển VBATạo phiên bản của từ điển với mã VBA
Sau khi thiết lập tham chiếu đến 'Microsoft Scripting Runtime', chúng ta cần tạo một phiên bản của Từ điển VBA. Đầu tiên, khai báo biến là Scripting.Dictionary
Mã:
Sub Dict_Example1 () Dim Dict As Scripting.Dictionary End Sub
Bây giờ biến “Dict” là một biến đối tượng. Đối với biến đối tượng, chúng ta cần đặt tham chiếu đối tượng bằng cách sử dụng từ “Mới”.
Đặt Dict = New Scripting.Dictionary
Bây giờ chúng ta có thể truy cập tất cả các thuộc tính và phương thức của từ điển.
Lưu ý: Tất cả các từ có nút Xanh là Phương thức và những từ khác là Thuộc tính.Bây giờ khai báo một biến là DictResult.
Dim DictResult như một biến thể
Bây giờ bằng cách sử dụng biến "Dict", chúng ta sẽ tạo một khóa mới.
Chìa khóa là từ mà chúng tôi đang thêm. Hãy thêm tên Điện thoại di động là “Redmi”.
Mục không là gì ngoài định nghĩa của từ ( khóa ) mà chúng tôi đã thêm vào. Định nghĩa này của điện thoại là giá của nó vì vậy tôi sẽ thêm giá thành 15000.
Bây giờ đối với một biến khác “DictResult”, chúng tôi sẽ thêm từ khóa bằng cách sử dụng biến “Dict”.
Key là từ mà chúng ta đã tạo ở bước trước, tức là tên của điện thoại.
Bây giờ biến “DictResult” có mục của khóa mà chúng ta đã thêm vào. Bây giờ hiển thị kết quả của biến trong hộp thông báo VBA.
Mã:
Sub Dict_Example1 () Dim Dict As Scripting.Dictionary Set Dict = New Scripting.Dictionary Dim DictResult As Variant Dict.Add Key: = "Redmi", Item: = 15000 DictResult = Dict ("Redmi") MsgBox DictResult End Sub
Bây giờ hãy chạy mã theo cách thủ công hoặc sử dụng phím F5 và một hộp thông báo sẽ hiển thị cho bạn giá ( mặt hàng ) của điện thoại ( phím ) mà chúng tôi đã thêm bằng cách sử dụng “Dict”.
Hiểu KEY & ITEM
Nếu bạn chưa hiểu KEY & ITEM, hãy để tôi giải thích cho bạn bằng một ví dụ đơn giản. Hãy tưởng tượng từ điển thế giới thực, với từ điển này chúng ta có các từ (khóa) và nghĩa của các từ (mục) đó. Tương tự, các từ là Chìa khóa, và định nghĩa hoặc nghĩa là Mục.
Bây giờ, hãy xem thêm một ví dụ về Từ điển. Giả sử bạn đang tìm kiếm số điện thoại của một người cụ thể. Bạn tìm kiếm như thế nào?
Rõ ràng, bằng cách sử dụng tên mà chúng tôi đã sử dụng trong khi lưu số điện thoại. Ở đây chúng ta có hai thứ một là Tên người và thứ hai là Số điện thoại.
Tên của Người là Key.
Các số điện thoại là Item.
Nếu bạn muốn có ví dụ về Excel, chúng ta có thể lấy hàm VLOOKUP làm ví dụ. Chúng tôi sử dụng công thức để tìm kiếm các giá trị dựa trên GIÁ TRỊ LOOKUP (Khóa). Kết quả trả về bởi hàm VLOOKUP được gọi là Item.
Kiểm tra xem điện thoại di động có ở đó hay không
Hãy tưởng tượng bạn đang đưa một biểu mẫu người dùng cho khách hàng của mình để kiểm tra giá điện thoại di động bằng một hộp nhập liệu đơn giản. Bên dưới mã VBA trong Excel sẽ hiển thị Hộp nhập liệu trước mặt người dùng và họ cần nhập thương hiệu điện thoại họ đang tìm kiếm, nếu tên thương hiệu có trong từ điển, nó sẽ hiển thị giá của điện thoại tương ứng hoặc nếu không thì sẽ hiển thị thông báo là “Điện thoại bạn đang tìm không tồn tại trong thư viện”.
Mã:
Sub Dict_Example2 () Dim PhoneDict As Scripting.Dictionary Dim DictResult As Variant Set PhoneDict = New Scripting.Dictionary PhoneDict.Add Key: = "Redmi", Item: = 15000 PhoneDict.Add Key: = "Samsung", Item: = 25000 PhoneDict .Add Key: = "Oppo", Item: = 20000 PhoneDict.Add Key: = "VIVO", Item: = 21000 PhoneDict.Add Key: = "Jio", Item: = 2500 DictResult = Application.InputBox (Nhắc: = "Vui lòng nhập tên điện thoại") Nếu PhoneDict.Exists (DictResult) Thì MsgBox "Giá của điện thoại" & DictResult & "là:" & PhoneDict (DictResult) Khác MsgBox "Điện thoại bạn đang tìm kiếm không tồn tại trong Thư viện "End If End Sub
Chạy mã này bằng phím F5 hoặc theo cách thủ công và xem kết quả.