Dictionary Trong VBA - VietTuts
Có thể bạn quan tâm
Trong VBA, chúng ta có thể sử dụng Array hoặc Collection để lưu trữ các nhóm của các giá trị. Ví dụ, chúng ta có thể sử dụng chúng để lưu trữ danh sách tên khách hàng, điểm của sinh viên, hoặc danh sách giá trị từ các cell trong một cột.
Dictionary trong VBA lưu trữ dữ liệu dưới dạng cặp key và value, các key không được trùng nhau. Dictionary được sinh ra để lấp đầy 2 khuyết điểm chính của Collection, với Dictionary chúng ta có thể:
- Kiểm tra Key đã tồn tại chưa.
- Có thể thay đổi giá trị của phần tử.
Nội dung chính
- 1. Add reference "Microsoft Scripting Runtime" (* bắt buộc).
- 2. Hướng dẫn nhanh về việc sử dụng Dictionary trong VBA.
- 3. Ví dụ về Dictionary trong VBA.
1. Add reference "Microsoft Scripting Runtime" (* bắt buộc).
Trước tiên, để sử dụng Dictionary trong VBA, bạn cần phải add reference "Microsoft Scripting Runtime", các bước thực hiện giống như trong bài Collection trong VBA.
2. Hướng dẫn nhanh về việc sử dụng Dictionary trong VBA.
Hàm VLookup trong Excel hoạt động tương tự như một Dictionary. Bạn có thể tra một giá trị dựa trên một key duy nhất.
Dưới đây là bảng hướng dẫn sử dụng nhanh collection trong VBA.
| Task | Example |
|---|---|
| Khai báo và khởi tạo (early binding) | Dim dict As Scripting.Dictionary Set dict = New Scripting.Dictionary |
| Khai báo và khởi tạo (late binding) | Dim dict As Object Set dict = CreateObject("Scripting.Dictionary") |
| Add phần tử mới | dict.Add Key, Value e.g. dict.Add "Apples", 50 |
| Chay đổi giá trị của một key. Tự động thêm mới nếu key chưa tồn tại | dict(Key) = Value e.g. dict("Oranges") = 60 |
| Lấy ra một giá trị từ dictionary bằng việc sử dụng key | Value = dict(Key) e.g. appleCount = dict("Apples") |
| Check key tồn tại | dict.Exists(Key) e.g. If dict.Exists("Apples") Then |
| Remove phần tử | dict.Remove Key e.g. dict.Remove "Apples" |
| Remove tất cả các phần tử | dict.RemoveAll |
| Duyệt các phần tử (For Each) | Dim key As Variant For Each key In dict.Keys Debug.Print key, dict(key) Next key |
| Duyệt các phần tử (for loop - chỉ TH early binding) | Dim i As Long For i = 0 To dict.Count - 1 Debug.Print dict.Keys(i), dict.Items(i) Next i |
| Lấy số phần tử của dict | dict.Count |
| Thiết lập key phân biệt hoa thường (dictionary phải là empty). | dict.CompareMode = vbBinaryCompare |
| Thiết lập key không phân biệt hoa thường (dictionary phải là empty). | dict.CompareMode = vbTextCompare |
3. Ví dụ về Dictionary trong VBA.
Dưới đây là ví dụ tra từ điển các loại quả trong tiếng anh bằng việc sử dụng đối tượng Dictionary.
Sub dictionaryExample1() ' khoi tao dictionary dict Dim dict As New Scripting.Dictionary ' thiet lap key khong phan biet hoa thuong dict.CompareMode = vbTextCompare ' add phan tu vao dict dict.Add Key:="Apple", Item:="Qua Tao" dict.Add Key:="Peach", Item:="Qua Dao" dict.Add Key:="Plum", Item:="Qua Man" dict.Add Key:="Orange", Item:="Qua Cam" dict.Add Key:="Lemon", Item:="Qua Chanh" dict.Add Key:="Cucumber", Item:="Qua Dua Chuot" Dim sFruit As String ' Ask user to enter fruit sFruit = InputBox("Enter fruit: ") ' check fruit ma nguoi dung nhap trong dict If dict.Exists(sFruit) Then MsgBox sFruit & " nghia la " & dict(sFruit) Else MsgBox sFruit & " khong ton tai." End If ' xoa dict de giai phong bo nho Set dict = Nothing End SubKết quả:
Nhập "lemon" -> click OK.
Collection trong VBA Debug trong Excel VBA Từ khóa » Cách Dùng Dictionary Trong Vba Excel
-
TỪ ĐIỂN VBA TRONG EXCEL - HƯỚNG DẪN ĐẦY ĐỦ
-
Tổng Quan Về Scripting.Dictionary | Giải Pháp Excel
-
Dictionary | Tự Học VBA
-
Macro|Bài 27| Dictionary Trong VBA|Giới Thiệu Về Dict Và Các Cách ...
-
Excel VBA: Lưu Trữ Giá Trị Trong VBA - Viblo
-
VBA Excel Sử Dụng Scripting Dictionary - LeQuocThai.Com
-
Scripting.Dictionary Vẫn Thường được Sử Dụng Trong VBA?
-
28 Dictionary, ứng Dụng Dict để Tổng Hợp Dữ Liệu Sales
-
Vba Dictionary - Trả Về KEY Từ Các Mục () - HelpEx
-
Bài 28| Dictionary Trong VBA|Phần 2| Ứng Dụng Tổng Hợp Sale
-
ERX Việt Nam - Trung Tâm đào Tạo Thực Chiến Quản Trị Doanh Nghiệp
-
VBA 04 - Tách Dữ Liệu Ra Nhiều Sheet NÂNG CAO Sử Dụng ...
-
[Update] Kiểu Dữ Liệu Dictionary Trong Python | Hàm Number Trong ...