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
❮ ❯

Collection trong VBA


Mảng (Array) trong VBA
Dictionary trong VBA

Collection trong VBA được sử dụng để lưu trữ một nhóm các giá trị. Collection có thể lưu trữ một tập các hạng mục tương tự, ví dụ như một danh sách tên của các sinh viên hoặc tên quốc gia. Sử dụng một collection hoặc array cho phép bạn nhanh chóng và dễ dàng thao tác một số lượng lớn các hạng mục.


Nội dung chính

  • 1. Add reference "Microsoft Scripting Runtime"
  • 2. Hướng dẫn nhanh về việc sử dụng Collection
  • 3. Ví dụ về Collection trong VBA
  • 4. Phương thức Add trong Collection
  • 5. Ưu/Nhược điểm của Collection trong VBA
    • Ưu điểm
    • Nhược điểm

1. Add reference "Microsoft Scripting Runtime"

Trước tiên, để sử dụng Collection trong VBA, bạn cần phải add reference "Microsoft Scripting Runtime", các bước thực hiện như sau:

  • 1. Mở VB Editor(Alt + F11).
  • 2. Tools –> References…
  • 3. Chọn “Microsoft Scripting Runtime”.

    Collection trong VBA
  • 4. Click OK.

2. Hướng dẫn nhanh về việc sử dụng Collection

Dưới đây là bảng hướng dẫn sử dụng nhanh collection trong VBA.

Task Examples
Khai báoDim coll As Collection
Khởi tạo lúc run timeSet coll = New Collection
Khai báo và khởi tạoDim coll As New Collection
Add phần tử vào Collectioncoll.Add "Apple"
Truy cập phần tử coll(1) hoặc coll(2)
Truy cập phần tử đầu tiên coll(1)
Truy cập phần tử cuối cùngcoll(coll.Count)
Get số lượng phần tửcoll.Count
Truy cập tất cả các phần tử (For)Dim i As Long
For i = 1 To coll.Count
   Debug.Print coll(i)
Next i
Truy cập tất cả các phần tử (For Each)Dim fruit As Variant
For Each fruit In coll
   Debug.Print fruit
Next fruit
Remove phần tửcoll.Remove(1)
Remove tất cả các phần tử
(Dim coll As New Collection)
Set coll = Nothing
coll.Add "Apple"
Remove tất cả các phần tử
(Dim coll As Collection
Set coll = New Collection)
Set coll = Nothing
Set coll = New Collection
coll.Add "Apple"
Note: phần tử đầu tiên của mảng trong VBA có chỉ số là 0. Nhưng phần tử đầu tiên của collection trong VBA có chỉ số là 1.

3. Ví dụ về Collection trong VBA

Ví dụ 1:


Sub collectionExample1()
    Dim i As Integer
    ' khai bao collection fruitColl
    Dim fruitColl As Collection
    ' khoi tao coll
    Set fruitColl = New Collection
    
    ' Add cac phan tu vao coll
    fruitColl.Add "Apple"
    fruitColl.Add "Mango"
    fruitColl.Add "Lemon"
    fruitColl.Add "Coconut"
    
    ' phan tu dau tien
    MsgBox "Phan tu dau tien: " & fruitColl(1)
    ' phan tu cuoi cung
    MsgBox "Phan tu cuoi cung: " & fruitColl(fruitColl.Count)
        
    ' truy cap cac phan tu (For)
    For i = 1 To fruitColl.Count
       MsgBox "Phan tu " & i & ": " & fruitColl(i)
    Next i
    
    ' xoa phan tu dau tien
    fruitColl.Remove (1)
    MsgBox "So phan tu con lai: " & fruitColl.Count
        
    ' xoa tat ca phan tu
    Set fruitColl = Nothing
    ' fruitColl.Add "Apple" ' error vi fruitColl da bi xoa
End Sub

Kết quả:

Phan tu dau tien: Apple
Phan tu cuoi cung: Coconut
Phan tu 1: Apple
Phan tu 2: Mango
Phan tu 3: Lemon
Phan tu 4: Coconut
So phan tu con lai: 3

4. Phương thức Add trong Collection

Phương thức Add được sử dụng để thêm mới phần tử vào collection.

Cú pháp:


Add (Item, [Key], [Before], [After])

Trong đó:

  • Item: Một tham số bắt buộc, là giá trị của hạng mục.
  • Key: Một tham số tùy chọn, là key của hạng mục.
  • Before: Một tham số tùy chọn, lưu hạng mục tại vị trí trước vị trí chỉ định.
  • After: Một tham số tùy chọn, lưu hạng mục tại vị trí sau vị trí chỉ định.

Ngoài việc lưu trữ bằng việc đánh chỉ số tự động, VBA cho phép bạn lưu trữ phần tử của collection với một Key. Hãy xem ví dụ dưới đây để hiểu về vấn đề này:


Sub collectionExample2()
    Dim i As Integer
    Dim fruitColl As New Collection
    
    ' add phan tu vao fruitColl
    fruitColl.Add Item:="Apple", Key:="A"
    fruitColl.Add Item:="Coconut", Key:="C", Before:=1
    fruitColl.Add Item:="Orange", Key:="O", After:="C"
    
    ' hien thi cac phan tu theo index
    MsgBox "phan tu so 1: " & fruitColl(1)
    MsgBox "phan tu so 2: " & fruitColl(2)
    MsgBox "phan tu so 3: " & fruitColl(3)
    
    ' hien thi cac phan tu theo key
    MsgBox "phan tu ""a"": " & fruitColl("a")
    MsgBox "phan tu ""C"": " & fruitColl("C")
    MsgBox "phan tu ""O"": " & fruitColl("O")
    
    ' hien thi cac phan tu bang phuong thuc Item() theo index
    MsgBox "phan tu Item(1): " & fruitColl.Item(1)
    MsgBox "phan tu Item(2): " & fruitColl.Item(2)
    MsgBox "phan tu Item(3): " & fruitColl.Item(3)
    
    ' xoa collection
    Set fruitColl = Nothing
End Sub

Kết quả:

phan tu so 1: Coconut
phan tu so 2: Orange
phan tu so 3: Apple
phan tu "a": Apple
phan tu "C": Coconut
phan tu "O": Orange
phan tu Item(1): Coconut
phan tu Item(2): Orange
phan tu Item(3): Apple
Note: Key trong collection không phân biệt hoa thường.

5. Ưu/Nhược điểm của Collection trong VBA

Ưu điểm

Dễ sử dụng, không cần phải khai báo kích thước trước khi sử dụng.

Nhược điểm

Collection chỉ đọc. Có nghĩa là bạn có thể thêm hoặc xóa một phần tử nhưng bạn không thể thay đổi giá trị của phần tử đó. Nếu bạn muốn thay đổi các giá trị trong một nhóm các giá trị thì bạn cần phải sử dụng một mảng.


Mảng (Array) trong VBA
Dictionary trong 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