VietTuts

Tự Học Lập Trình Online

  • Home
  • Java
  • Servlet
  • JSP
  • Struts2
  • Hibernate
  • Spring
  • MyBatis
  • Java WS
  • C
  • C++
  • C#
  • Python
  • PHP
  • Excel
  • VBA
  • Web
    • JavaScript
    • JQUERY
    • JSON
    • AJAX
    • CSS
    • HTML
    • HTML5
    • Node.js
    • Angular 7
  • SQL
    • MySQL
    • SQL Server
  • Misc
    • Eclipse
    • Phần mềm tiện ích
    • Cấu trúc DL&GT
    • Selenium Test

Giới Thiệu Về Excel VBA

Excel VBA là gì? Tạo một Macro trong Excel MsgBox trong Excel VBA

Các Đối Tượng Trong Excel VBA

Hệ thống các đối tượng Đối tượng Application Đối tượng Workbook Đối tượng Worksheet Đối tượng Range

VBA Cơ Bản

Biến và kiểu dữ liệu trong VBA Comment trong VBA Toán tử trong VBA Function trong VBA Sub trong VBA Khối lệnh With-End With Mảng (Array) trong VBA Collection trong VBA Dictionary trong VBA Debug trong VBA Xử lý lỗi trong VBA Truyền tham chiếu và giá trị

Các Mệnh Đề Điều Khiển

Mệnh đề If-Else Vòng lặp For Vòng lặp For-Each Vòng lặp While-Wend Vòng lặp Do-While Vòng lặp Do-Util Mệnh đề Select-Case

VBA String

String trong VBA Hàm InStr trong VBA Hàm InStrRev trong VBA Hàm LCase trong VBA Hàm UCase trong VBA Hàm Left trong VBA Hàm Right trong VBA Hàm Mid trong VBA Hàm LTrim trong VBA Hàm RTrim trong VBA Hàm Trim trong VBA Hàm Len trong VBA Hàm Replace trong VBA Hàm Space trong VBA Hàm StrComp trong VBA Hàm String trong VBA Hàm StrReverse trong VBA

VBA Date

Date & Time trong VBA Hàm Date trong VBA Hàm CDate trong VBA Hàm DateAdd trong VBA Hàm DateDiff trong VBA Hàm PartDate trong VBA Hàm DateSerial trong VBA Hàm FormatDateTime trong VBA Hàm IsDate trong VBA Hàm Day trong VBA Hàm Month trong VBA Hàm Year trong VBA Hàm MonthName trong VBA Hàm WeekDay trong VBA Hàm WeekDayName trong VBA

VBA Time

Hàm Now trong VBA Hàm Hour trong VBA Hàm Minute trong VBA Hàm Second trong VBA Hàm Time trong VBA Hàm Timer trong VBA Hàm TimeSerial trong VBA Hàm TimeValue trong VBA
Các Ví Dụ Về Excel VBA
1 / 3
❮ ❯

Dictionary trong VBA


Collection trong VBA
Debug trong Excel VBA

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ể:

  1. Kiểm tra Key đã tồn tại chưa.
  2. 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 Sub

Kết quả:

Ví dụ về Dictionary trong VBA

Nhập "lemon" -> click OK.

Ví dụ về Dictionary trong VBA
Collection trong VBA
Debug trong Excel VBA

Recent Updates

Phím tắt hay dùng trong ExcelBảo mật tập tin ExcelDịch trang tính trong ExcelIn trang tính trong ExcelHàm VLOOKUP trong ExcelĐối tượng đồ họa trong ExcelSử dụng macro trong ExcelSử dụng Templates trong ExcelSử dụng chủ đề (theme) trong ExcelSử dụng Style trong ExcelXác thực dữ liệu (Data Validation) trong ExcelSử dụng phạm vi (Range) trong ExcelSắp Tết 2026 Rồi! - Còn bao nhiêu ngày nữa là đến tết 2026?

VietTuts on facebook

Học VBA Excel Online
Danh Sách Bài Học

Học Java | Hibernate | Spring
Học Excel | Excel VBA
Học Servlet | JSP | Struts2
Học C | C++ | C#
Học Python
Học SQL

Bài Tập Có Lời Giải

Bài tập Java
Bài tập C
Bài tập C++
Bài tập C#
Bài tập Python
Ví dụ Excel VBA

Câu Hỏi Phỏng Vấn

201 câu hỏi phỏng vấn java
25 câu hỏi phỏng vấn servlet
75 câu hỏi phỏng vấn jsp
52 câu hỏi phỏng vấn Hibernate
70 câu hỏi phỏng vấn Spring
57 câu hỏi phỏng vấn SQL

Scroll back to top

Copyright © 2016 VietTuts.Vn all rights reserved. | Liên hệ | Chính sách - riêng tư | sitemap.html | sitemap_index.xml