Dictionary | Tự Học VBA
Có thể bạn quan tâm
Menu
Phương thức:
2.1 Tạo từ điển, giá trị khởi tạo ban đầu, thêm, phương pháp tham chiếu Để tạo Dictionary ta sử dụng hàm CreateObject: Mã: Dim Dic as Object Set Dic = CreateObject("Scripting.Dictionary") Ví dụ như sau: Mã: Sub tuhocvba() 'Khai báo và tạo Dictionary Dim myDic As Object Set myDic = CreateObject("Scripting.Dictionary") 'Thêm dữ liệu và key cho Dictionary, tạo giá trị khởi tạo 'Dùng phương thức Add key, item myDic.Add "orange", 100 myDic.Add "apple", 200 myDic.Add "melon", 300 'Tham chiếu Dictionary Dim str As String, i As Integer Dim Keys() As Variant Keys = myDic.Keys For i = 0 To 2 str = str & Keys(i) & " : " & myDic.Item(Keys(i)) & vbCrLf Next i MsgBox str, vbInformation End Sub Kết quả: Bạn cần đăng nhập để thấy hình ảnh Bạn cần đăng nhập để thấy hình ảnh 2.2 Phương phương tham chiếu bằng cách dùng For Each Mã: Sub macro2() 'Tạo Dictionary Dim myDic As Object Set myDic = CreateObject("Scripting.Dictionary") 'Khởi tạo giá trị ban đầu choDictionary, thêm dữ liệu cho từ điển myDic.Add "orange", 100 myDic.Add "apple", 200 myDic.Add "melon", 300 'Tham chiếu tới Dictionary Dim str As String For Each Var In myDic str = str & Var & " : " & myDic.Item(Var) & vbCrLf Next Var MsgBox str, vbInformation End Sub Kết quả: Bạn cần đăng nhập để thấy hình ảnh Bạn cần đăng nhập để thấy hình ảnh 2.3 Phương pháp xóa bằng Remove Mã: Sub macro3() 'Tạo Dictionary Dim myDic As Object Set myDic = CreateObject("Scripting.Dictionary") 'Khởi tạo giá trị và thêm phần tử choDictionary myDic.Add "orange", 100 myDic.Add "apple", 200 myDic.Add "melon", 300 'Xóa key trong Dictonary myDic.Remove "orange" 'Tham chiếu tới Dictionary Dim str As String For Each Var In myDic str = str & Var & " : " & myDic.Item(Var) & vbCrLf Next Var MsgBox str, vbInformation End Sub Kết quả: Bạn cần đăng nhập để thấy hình ảnh Bạn cần đăng nhập để thấy hình ảnh Chú ý rằng, phương thức xóa key này chỉ đúng khi key có tồn tại trong từ điển. Nếu key không tồn tại mà thực hiện lệnh xóa thì chương trình sẽ báo lỗi. Giả sử chương trình trên ta sửa lại là: Mã: myDic.Remove "orange2" kết quả là: Bạn cần đăng nhập để thấy hình ảnh 2.4 Phương pháp xác nhận tính tồn tại Exists Đây là một tính năng chính của Dictionary dùng để kiểm tra key đã tồn tại trong từ điển hay chưa. Do đặc tính tồn tại duy nhất của key, đặc tính này được vận dụng triệt để trong việc so sánh hai data. Mã: Sub macro4() 'Tạo Dictionary Dim myDic As Object Set myDic = CreateObject("Scripting.Dictionary") 'Thêm phần tử và nạp giá trị cho Dictionary myDic.Add "orange", 100 myDic.Add "apple", 200 myDic.Add "melon", 300 'Xóa key trong Dictonary Dim key As String key = "orange" If myDic.Exists(key) Then 'Xác nhận tồn tại hay chưa, nếu tồn tại thì xóa myDic.Remove key Else MsgBox key & "Can not delete", vbInformation End If 'Tham chiếu tới Dictionary Dim str As String For Each Var In myDic str = str & Var & " : " & myDic.Item(Var) & vbCrLf Next Var MsgBox str, vbInformation End Sub Kết quả: Bạn cần đăng nhập để thấy hình ảnh 3. Phương pháp sắp xếp key trong Dictionary Dictionary không cung cấp phương thức để sắp xếp lại thứ tự các phần tử trong từ điển. Tuy nhiên ta có thể tự sắp xếp lại từ điển. Trong đó ta sử dụng phương thức Sort đối với Range. Mã: Sub macro5() 'Tạo Dictionary Dim myDic As Object Set myDic = CreateObject("Scripting.Dictionary") 'Nạp key và dữ liệu cho Dictionary myDic.Add "orange", 100 myDic.Add "apple", 200 myDic.Add "melon", 300 'Ghi dữ liệu Dictionary vào cells Dim i As Integer i = 1 For Each Var In myDic Cells(i, 1).Value = Var Cells(i, 2).Value = myDic.Item(Var) i = i + 1 Next Var 'Sort trên Range Dim myrange As range Set myrange = range("A1:B" & myDic.Count) myrange.Sort key1:=range("A1") 'Từ kết quả Sort ta đặt lại từ điển Dim str As String Dim Keys() As Variant, Items() As Variant Keys = myDic.Keys Items = myDic.Items For i = 1 To myDic.Count Keys(i - 1) = Cells(i, 1).Value 'Đặt lại gia trị key Items(i - 1) = Cells(i, 2).Value 'Đặt lại giá trị Item str = str & Keys(i - 1) & " : " & Items(i - 1) & vbCrLf Next i MsgBox str, vbInformation End Sub Kết quả: Bạn cần đăng nhập để thấy hình ảnh Bạn cần đăng nhập để thấy hình ảnh 4. Phương pháp thiết định Object Dictionary Vào Tools -> References và lựa chọn Microsoft Scripting Runtime từ trên danh sách để cài đặt -> nhấn OK. Bạn cần đăng nhập để thấy hình ảnh Khi đó code sẽ giản lược hơn trong việc tạo Dictionary Mã: Sub macro6() 'Tạo Dictionary-rất ngắn gọn Dim myDic As New Scripting.Dictionary 'Khởi tạo giá trị-thêm phần tử cho Dictionary myDic.Add "orange", 100 myDic.Add "apple", 200 myDic.Add "melon", 300 'Tham chiếu tới Dictionary Dim str As String For Each Var In myDic str = str & Var & " : " & myDic.Item(Var) & vbCrLf Next Var MsgBox str, vbInformation End Sub Kết quả: Bạn cần đăng nhập để thấy hình ảnh 5. Tổng kết: - Có thể thêm vào số lượng item tùy ý với những kiểu dữ liệu khác nhau. - Các item và key của Dictionary rất dễ truy xuất, sửa chữa và bổ sung. - Dictionary cho phép bạn xóa tất cả các item tồn tại trong Dic mà không cần phải phá hủy chính nó. - Và cuối cùng, các item chỉ có thể được gọi duy nhất bằng cách là thông qua một key mà key đó là bắt buộc và là duy nhất (không thể có 2 key trùng nhau). Điều này tạo thuận lợi cho các bài toán trích lọc danh sách duy nhất hoặc trong bài toán so sánh hai data, và đây cũng chính là ưu điểm lớn nhất của Dictionary. Nguồn: Mã: https://www.sejuku.net/blog/29736
- Trang chủ
- Diễn đàn Bài viết mới Tìm chủ đề
- Có gì mới Bài viết mới Hoạt động mới nhất
Tìm kiếm
Everywhere Chủ đề This forum This thread Chỉ tìm trong tiêu đề Tìm Tìm kiếm nâng cao…- Bài viết mới
- Tìm chủ đề
- Cách upload ảnh lên diễn đàn
- Trang chủ
- Diễn đàn
- Kỹ thuật xử lý Excel
- Lập trình VBA
- Thread starter Euler
- Ngày gửi 30/5/19
Euler
Administrator
Thành viên BQT 1. Dictionary là gì? 2. Cách sử dụng Dictionary 2.1 Tạo từ điển, giá trị khởi tạo ban đầu, thêm, phương pháp tham chiếu 2.2 Phương phương tham chiếu bằng cách dùng For Each 2.3 Phương pháp xóa bằng Remove 2.4 Phương pháp xác nhận tính tồn tại Exists 3. Phương pháp sắp xếp key trong Dictionary 4. Phương pháp thiết định Object Dictionary 5. Tổng kết 1. Dictionary là gì? Đối tượng Dictionary là đối tượng lưu trữ data và key. Hiểu ngắn gọn nó như một cuốn từ điển chứa dữ liệu và tra cứu bằng key. Key là tồn tại duy nhất, không thể có hai key trùng nhau. Tra cứu key để tìm ra data (Item). 2. Cách sử dụng Dictionary| Property | Nội dung |
| Count | Thuộc tính Count sẽ trả về giá trị số lượng item có trong Dictionary. Nếu không có item trong Dic, thuộc tính này sẽ trả về giá trị 0. |
| Item(key) | Thuộc tính Item giúp truy xuất giá trị Item ứng với key đó |
| Key(i) | Truy xuất giá trị của Key ứng với số thứ tự. |
| CompareMode | Cách phân biệt sự khác nhau giữa các key: Phân biệt chữ in hoa hoặc không quan tâm in hoa hay in thường vbBinaryCompare(0): Phân biệt in hoa và in thường vbBinaryCompare(1): Không phân biệt in hoa hay in thường |
| Method | Nội dung |
| Add key, item | Phương thức Add dùng để thêm key, item vào Dictionary. |
| Exists(key) | Phương thức Exists sẽ kiểm tra xem Key đã tồn tại trong từ điển chưa? Nếu Key tồn tại, kết quả sẽ là True và chưa tồn tại thì kết quả sẽ là False. |
| Items | Trả về kết quả là mảng một chiều. Chỉ mục bắt đầu từ 0. Chú ý thuộc tính không có "s", phương thức thì có "s". |
| Keys | Trả về kết quả là mảng một chiều. Chỉ mục bắt đầu từ 0. Chú ý thuộc tính không có "s", phương thức thì có "s". |
| Remove key | xóa key và dữ liệu liên quan tới key khỏi từ điển |
| RemoveAll | Xóa toàn bộ key và dữ liệu trong Dictionary nhưng không xóa chính nó. |
tuhocvba
Administrator
Thành viên BQT Tuy dài như vậy, nhưng tựu chung lại với người code thì chỉ quan tâm tới: thêm mới phần tử vào dic, truy xuất key, truy xuất item, kiểm tra tồn tại. Vì vậy tổng kết trong đoạn code sau: ‘============================================== Mã: ‘Lay thong tin item, key trong Dictionary ‘============================================== Sub Dictionary_thvba() Dim dic As New Dictionary Dim i As Integer Dim keytemp As string dic.Add "key_1", "item_1" dic.Add "key_2", "item_2" dic.Add "key_3", "item_3" ‘———————————————— ‘Lay thong tin Item tu Index ‘———————————————— For i = 0 To dic.Count – 1 Debug.Print dic.Items(i) Next i ‘———————————————— ‘Lay thong tin key tu Index ‘———————————————— For i = 0 To dic.Count – 1 Debug.Print dic.Keys(i) Next i ‘———————————————— ‘Lay thong tin item tu key (var) ‘———————————————— Dim Var As Variant For Each Var In dic Debug.Print Var & “,” & dic.Item(Var) 'liệt kê ghi key,item Next Var ‘———————————————— ‘Kiem tra key ton tai hay khong? ‘———————————————— keytemp = "key_1" if dic.Exists(keytemp) then Msgbox "co ton tai" 'kiểm tra key có tồn tại trong dic hay không End Sub Bạn phải đăng nhập hoặc đăng ký để bình luận. Chia sẻ: Facebook Twitter WhatsApp Email Link- Trang chủ
- Diễn đàn
- Kỹ thuật xử lý Excel
- Lập trình VBA
Từ khóa » Cách Dùng Dictionary Trong Vba Excel
-
Dictionary Trong VBA - VietTuts
-
TỪ ĐIỂN VBA TRONG EXCEL - HƯỚNG DẪN ĐẦY ĐỦ
-
Tổng Quan Về Scripting.Dictionary | Giải Pháp Excel
-
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 ...