Bộ sưu tập VBA trong Excel

Bộ sưu tập là một đối tượng chứa một số mục giống nhau. Chúng có thể dễ dàng truy cập và thao tác, ngay cả khi có một số lượng lớn các mục trong bộ sưu tập.

Đã có sẵn các bộ sưu tập với Excel VBA. Một ví dụ là bộ sưu tập Trang tính. Đối với mỗi trang tính trong sổ làm việc, có một mục trong bộ sưu tập Trang tính.

Các bộ sưu tập tích hợp sẵn có nhiều thuộc tính và phương thức hơn cho bạn, nhưng chúng không có sẵn trong các bộ sưu tập của riêng bạn mà bạn tạo.

Ví dụ: bạn có thể sử dụng bộ sưu tập để lấy thông tin trên một trang tính cụ thể. Ví dụ: bạn có thể xem tên của trang tính và cũng có thể xem nó có hiển thị hay không. Bằng cách sử dụng vòng lặp For Each, bạn có thể lặp lại qua từng trang tính trong bộ sưu tập.

1234567 Sub TestWorksheets ()Dim Sh As WorksheetĐối với mỗi Sh trong Trang tínhMsgBox Sh.NameMsgBox Sh.Sh tiếp theoKết thúc Sub

Bạn cũng có thể giải quyết một trang tính cụ thể trong bộ sưu tập bằng cách sử dụng giá trị chỉ mục hoặc tên thực của trang tính:

12 MsgBox Sheets (1). TênMsgBox Sheets ("Sheet1"). Tên

Khi các trang tính được thêm vào hoặc bị xóa, bộ sưu tập Trang tính sẽ phát triển hoặc thu nhỏ về kích thước.

Lưu ý rằng với bộ sưu tập VBA, số chỉ mục bắt đầu bằng 1 không phải bằng 0

Bộ sưu tập so với Mảng

Mảng và tập hợp giống nhau về chức năng của chúng ở chỗ chúng đều là phương pháp luận cho phép lưu trữ một lượng lớn dữ liệu mà sau đó có thể dễ dàng tham chiếu bằng cách sử dụng mã. Tuy nhiên, chúng có một số điểm khác biệt trong cách chúng hoạt động:

  1. Mảng là nhiều chiều trong khi tập hợp chỉ có một chiều. Bạn có thể kích thước một mảng với nhiều thứ nguyên, ví dụ:
1 Dim MyArray (10, 2) Dưới dạng chuỗi

Thao tác này tạo ra một mảng gồm 10 hàng với 2 cột, gần giống như một trang tính. Một tập hợp thực sự là một cột duy nhất. Mảng hữu ích nếu bạn cần lưu trữ một số mục dữ liệu có liên quan đến nhau, ví dụ: tên và địa chỉ. Tên sẽ ở chiều đầu tiên của mảng và địa chỉ ở chiều thứ hai.

  1. Khi bạn điền mảng của mình, bạn cần một dòng mã riêng để đặt giá trị vào từng phần tử của mảng. Nếu bạn có một mảng hai chiều, bạn sẽ thực sự cần 2 dòng mã - một dòng để đánh địa chỉ cột đầu tiên và một dòng để đánh địa chỉ cột thứ hai. Với đối tượng Bộ sưu tập, bạn chỉ cần sử dụng phương thức Thêm để mục mới được thêm vào bộ sưu tập và giá trị chỉ mục được tự động điều chỉnh cho phù hợp.
  2. Nếu bạn cần xóa một mục dữ liệu thì nó phức tạp hơn trong mảng. Bạn có thể đặt các giá trị của một phần tử thành giá trị trống, nhưng bản thân phần tử đó vẫn tồn tại trong mảng. Nếu bạn đang sử dụng vòng lặp For Next để lặp qua mảng, vòng lặp sẽ trả về một giá trị trống, điều này sẽ cần mã hóa để đảm bảo rằng giá trị trống được bỏ qua. Trong một bộ sưu tập, bạn sử dụng các phương pháp Thêm hoặc Xóa, và tất cả việc lập chỉ mục và định cỡ lại sẽ tự động được thực hiện. Mục đã được loại bỏ sẽ biến mất hoàn toàn. Mảng hữu ích cho một kích thước dữ liệu cố định, nhưng các bộ sưu tập sẽ tốt hơn khi số lượng dữ liệu có thể thay đổi.
  3. Bộ sưu tập là Chỉ đọc trong khi các giá trị mảng có thể được thay đổi bằng VBA. Với một bộ sưu tập, bạn sẽ phải xóa giá trị cần thay đổi trước và sau đó thêm giá trị mới đã thay đổi vào.
  4. Trong một mảng, bạn chỉ có thể sử dụng một kiểu dữ liệu duy nhất cho các phần tử được đặt khi bạn kích thước mảng. Tuy nhiên, trong mảng, bạn có thể sử dụng các kiểu dữ liệu tùy chỉnh mà bạn đã tự thiết kế. Bạn có thể có một cấu trúc mảng rất phức tạp bằng cách sử dụng kiểu dữ liệu tùy chỉnh mà lần lượt có một số kiểu dữ liệu tùy chỉnh bên dưới nó. Trong một bộ sưu tập, bạn có thể thêm các kiểu dữ liệu sử dụng cho từng mục. Bạn có thể có một giá trị số, ngày tháng hoặc một chuỗi - đối tượng thu thập sẽ nhận bất kỳ kiểu dữ liệu nào. Nếu bạn cố gắng đặt một giá trị chuỗi vào một mảng có kích thước là số, nó sẽ tạo ra một thông báo lỗi.
  5. Bộ sưu tập thường dễ sử dụng hơn mảng. Theo thuật ngữ mã hóa, khi bạn tạo một đối tượng tập hợp, nó chỉ có hai phương thức (Thêm và Xóa) và hai thuộc tính (Đếm và Mục), vì vậy đối tượng này không có nghĩa là phức tạp để lập trình.
  6. Bộ sưu tập có thể sử dụng khóa để định vị dữ liệu. Mảng không có chức năng này và yêu cầu mã lặp để lặp qua mảng để tìm các giá trị cụ thể.
  7. Kích thước của một mảng cần được xác định khi nó được tạo lần đầu tiên. Bạn cần phải có ý tưởng về lượng dữ liệu mà nó sẽ lưu trữ. Nếu bạn cần tăng kích thước của mảng, bạn có thể sử dụng ‘ReDim’ để thay đổi kích thước của nó, nhưng bạn cần sử dụng từ khóa ‘Preserve’ nếu bạn không muốn mất dữ liệu đã có trong mảng. Kích thước bộ sưu tập không cần phải được xác định. Nó chỉ phát triển và thu nhỏ tự động khi các mục được thêm hoặc bớt.

Phạm vi của một đối tượng tập hợp

Về phạm vi, đối tượng bộ sưu tập chỉ khả dụng trong khi sổ làm việc đang mở. Nó không được lưu khi sổ làm việc được lưu. Nếu sổ làm việc được mở lại thì bộ sưu tập cần được tạo lại bằng mã VBA.

Nếu bạn muốn bộ sưu tập của mình có sẵn cho tất cả mã trong mô-đun mã của mình, thì bạn cần khai báo đối tượng bộ sưu tập trong phần Khai báo ở đầu cửa sổ mô-đun

Điều này sẽ đảm bảo rằng tất cả mã của bạn trong mô-đun đó đều có thể truy cập vào bộ sưu tập. Nếu bạn muốn bất kỳ mô-đun nào trong sổ làm việc của mình truy cập vào bộ sưu tập, thì hãy xác định nó là một đối tượng chung

1 Global MyCollection dưới dạng Bộ sưu tập mới

Tạo Bộ sưu tập, Thêm Mục và Truy cập Mục

Một đối tượng bộ sưu tập đơn giản có thể được tạo trong VBA bằng cách sử dụng mã sau:

123456 Sub CreateCollection ()Làm mờ MyCollection như một bộ sưu tập mớiMyCollection.Add "Item1"MyCollection.Add "Item2"MyCollection.Add "Item3"Kết thúc Sub

Mã kích thước một đối tượng mới được gọi là ‘MyCollection’ và sau đó các dòng mã sau sử dụng phương thức Thêm để thêm vào 3 giá trị mới.

Sau đó, bạn có thể sử dụng mã để lặp qua bộ sưu tập của mình để truy cập các giá trị

123 Đối với từng mục trong MyCollectionMục MsgBoxMục tiếp theo

Bạn cũng có thể lặp lại bộ sưu tập của mình bằng cách sử dụng Vòng lặp Tiếp theo:

123 Đối với n = 1 Đến MyCollection.CountMsgBox MyCollection (n)Tiếp theo n

Mã nhận kích thước của bộ sưu tập bằng cách sử dụng thuộc tính Count và sau đó sử dụng giá trị này bắt đầu từ giá trị 1 để lập chỉ mục từng mục

Vòng lặp For Each nhanh hơn vòng lặp For Next nhưng nó chỉ hoạt động theo một hướng (chỉ số thấp đến cao). Vòng lặp Tiếp theo có ưu điểm là bạn có thể sử dụng một hướng khác (chỉ số cao xuống thấp) và bạn cũng có thể sử dụng phương pháp Bước để thay đổi mức tăng. Điều này rất hữu ích khi bạn muốn xóa một số mục vì bạn sẽ cần chạy quá trình xóa từ cuối bộ sưu tập đến đầu vì chỉ mục sẽ thay đổi khi quá trình xóa diễn ra.

Phương thức Thêm trong một tập hợp có 3 tham số tùy chọn - Khóa, Trước và Sau

Bạn có thể sử dụng thông số "Trước" và "Sau" để xác định vị trí của mặt hàng mới so với những mặt hàng khác đã có trong bộ sưu tập

Điều này được thực hiện bằng cách chỉ định số chỉ mục mà bạn muốn mục mới của mình có liên quan.

123456 Sub CreateCollection ()Làm mờ MyCollection như một bộ sưu tập mớiMyCollection.Add "Item1"MyCollection.Add "Item2",, 1MyCollection.Add "Item3"Kết thúc Sub

Trong ví dụ này, ‘Item2’ đã được chỉ định để thêm vào trước mục được lập chỉ mục đầu tiên trong bộ sưu tập (là ‘Item1’). Khi bạn lặp lại bộ sưu tập này, trước hết, ‘Item2’ sẽ xuất hiện, tiếp theo là ‘Item1’ và ‘Item3’

Khi bạn chỉ định tham số ‘Trước’ hoặc ‘Sau’, giá trị chỉ mục được tự động điều chỉnh trong bộ sưu tập để ‘Lặp lại 2’ trở thành giá trị chỉ mục là 1 và ‘Item1’ được chuyển sang giá trị chỉ mục là 2

Bạn cũng có thể sử dụng thông số 'Khóa' để thêm giá trị tham chiếu mà bạn có thể sử dụng để xác định mục bộ sưu tập. Lưu ý rằng giá trị khóa phải là một chuỗi và phải là duy nhất trong bộ sưu tập.

1234567 Sub CreateCollection ()Làm mờ MyCollection như một bộ sưu tập mớiMyCollection.Add "Item1"MyCollection.Add "Item2", "MyKey"MyCollection.Add "Item3"MsgBox MyCollection ("MyKey")Kết thúc Sub

‘Item2’ đã được cấp một giá trị ‘Key’ của ‘MyKey’ để bạn có thể tham chiếu đến mục đó bằng cách sử dụng giá trị ‘MyKey’ thay vì số chỉ mục (2)

Lưu ý rằng giá trị "Key" phải là một giá trị chuỗi. Nó không thể là bất kỳ kiểu dữ liệu nào khác. Lưu ý rằng bộ sưu tập là Chỉ đọc và bạn không thể cập nhật giá trị khóa khi nó đã được đặt. Ngoài ra, bạn không thể kiểm tra xem giá trị khóa có tồn tại cho một mục cụ thể trong bộ sưu tập hay không hoặc xem giá trị khóa có một chút hạn chế.

Tham số ‘Key’ có thêm lợi thế là làm cho mã của bạn dễ đọc hơn, đặc biệt nếu nó đang được giao cho một đồng nghiệp để hỗ trợ và bạn không phải lặp lại toàn bộ bộ sưu tập để tìm giá trị đó. Hãy tưởng tượng nếu bạn có một bộ sưu tập 10.000 mặt hàng thì sẽ khó khăn như thế nào để tham khảo một mặt hàng cụ thể!

Xóa một mục khỏi bộ sưu tập

Bạn có thể sử dụng phương pháp "Xóa" để xóa các mục khỏi bộ sưu tập của mình.

1 MyCollection.Remove (2)

Thật không may, không dễ dàng nếu bộ sưu tập có một số lượng lớn các mục để tìm ra chỉ mục của mục mà bạn muốn xóa. Đây là nơi thông số "Key" có ích khi bộ sưu tập đang được tạo

1 MyCollection.Remove (“MyKey”)

Khi một mục bị xóa khỏi bộ sưu tập, các giá trị chỉ mục sẽ tự động được đặt lại trong suốt bộ sưu tập. Đây là nơi mà thông số 'Key' rất hữu ích khi bạn xóa nhiều mục cùng một lúc. Ví dụ: bạn có thể xóa chỉ mục mục 105 và ngay lập tức chỉ mục mục 106 trở thành chỉ mục 105 và mọi thứ phía trên mục này đều bị di chuyển giá trị chỉ mục xuống. Nếu bạn sử dụng tham số Key, không cần phải lo lắng về việc giá trị chỉ mục nào cần được loại bỏ.

Để xóa tất cả các mục của bộ sưu tập và tạo một bộ sưu tập mới, bạn sử dụng lại câu lệnh Dim để tạo một bộ sưu tập trống.

1 Làm mờ MyCollection như một bộ sưu tập mới

Để loại bỏ hoàn toàn đối tượng bộ sưu tập thực tế, bạn có thể đặt đối tượng thành không

1 Đặt MyCollection = Không có gì

Điều này hữu ích nếu mã của bạn không còn yêu cầu bộ sưu tập nữa. Đặt đối tượng bộ sưu tập thành không có gì sẽ xóa tất cả tham chiếu đến nó và giải phóng bộ nhớ mà nó đang sử dụng. Điều này có thể có ý nghĩa quan trọng đối với tốc độ thực thi mã của bạn, nếu một đối tượng lớn đang nằm trong bộ nhớ không còn được yêu cầu.

Đếm số lượng các mục trong một bộ sưu tập

Bạn có thể dễ dàng tìm ra số lượng mặt hàng trong bộ sưu tập của mình bằng cách sử dụng thuộc tính "Count"

1 MsgBox MyCollection.Count

Bạn sẽ sử dụng thuộc tính này nếu bạn đang sử dụng Vòng lặp Tiếp theo để lặp lại qua bộ sưu tập vì nó sẽ cung cấp cho bạn giới hạn trên cho số chỉ mục.

Bộ sưu tập thử nghiệm cho một giá trị cụ thể

Bạn có thể lặp lại qua một bộ sưu tập để tìm kiếm giá trị cụ thể cho một mặt hàng bằng cách sử dụng Cho mỗi vòng lặp

123456789101112 Sub SearchCollection ()Làm mờ MyCollection làm Bộ sưu tập mớiMyCollection.Add "Item1"MyCollection.Add "Item2"MyCollection.Add "Item3"Đối với từng mục trong MyCollectionIf Item = "Item2" Sau đóMục MsgBox & "Đã tìm thấy"Kết thúc nếuKế tiếpKết thúc Sub

Mã tạo ra một bộ sưu tập nhỏ, và sau đó lặp qua nó để tìm một mục có tên là ‘item2”. Nếu tìm thấy nó sẽ hiển thị một hộp thông báo rằng nó đã tìm thấy mặt hàng cụ thể

Một trong những hạn chế với phương pháp này là bạn không thể truy cập giá trị chỉ mục hoặc giá trị khóa

Nếu bạn sử dụng Vòng lặp Cho Tiếp theo, bạn có thể sử dụng Bộ đếm Cho Tiếp theo để lấy giá trị chỉ mục, mặc dù bạn vẫn không thể nhận được giá trị ‘Khóa’

123456789101112 Tìm kiếm phụ ()Làm mờ MyCollection như một bộ sưu tập mớiMyCollection.Add "Item1"MyCollection.Add "Item2"MyCollection.Add "Item3"Đối với n = 1 Đến MyCollection.CountNếu MyCollection.Item (n) = "Item2" ThìMsgBox MyCollection.Item (n) & "tìm thấy ở vị trí chỉ mục" & nKết thúc nếuTiếp theo nKết thúc Sub

Bộ đếm Tiếp theo (n) sẽ cung cấp vị trí chỉ mục

Sắp xếp Bộ sưu tập

Không có chức năng tích hợp để sắp xếp một bộ sưu tập, nhưng sử dụng một số suy nghĩ ‘ngoài hộp’, mã có thể được viết để thực hiện sắp xếp, sử dụng chức năng sắp xếp trang tính của Excel. Mã này sử dụng một trang tính trống được gọi là 'SortSheet' để thực hiện việc sắp xếp thực tế.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 Sub SortCollection ()Làm mờ MyCollection như một bộ sưu tập mớiDim Counter As Long‘Xây dựng bộ sưu tập với các mục đặt hàng ngẫu nhiênMyCollection.Add "Item5"MyCollection.Add "Item2"MyCollection.Add "Item4"MyCollection.Add "Item1"MyCollection.Add "Item3"‘Ghi lại số lượng các mục trong bộ sưu tập để sử dụng trong tương laiBộ đếm = MyCollection.Count‘Lặp lại qua bộ sưu tập sao chép từng mục vào một ô liên tiếp trên‘ SortSheet ’(cột A)Đối với n = 1 Đến MyCollection.CountSheets ("SortSheet"). Cells (n, 1) = MyCollection (n)Tiếp theo n‘Kích hoạt bảng sắp xếp và sử dụng quy trình sắp xếp Excel để sắp xếp dữ liệu theo thứ tự tăng dầnSheets ("SortSheet"). Kích hoạtPhạm vi ("A1: A" & MyCollection.Count). ChọnActiveWorkbook.Worksheets ("SortSheet"). Sắp xếp.SortFields.ClearActiveWorkbook.Worksheets ("SortSheet"). Sort.SortFields.Add2 Key: = Range (_"A1: A5"), SortOn: = xlSortOnValues, Order: = xlAscending, DataOption: = _xlSortNormalVới ActiveWorkbook.Worksheets ("SortSheet"). Sắp xếpDải .SetRange ("A1: A5").Header = xlGuess.MatchCase = Sai.Orientation = xlTopToBottom.SortMethod = xlPinYin.Ứng dụngKết thúc với‘Xóa tất cả các mục trong bộ sưu tập - lưu ý rằng Vòng lặp Cho Tiếp theo này chạy theo thứ tự ngược lạiĐối với n = MyCollection.Count đến 1 bước -1MyCollection.Remove (n)Tiếp theo n‘Sao chép các giá trị ô trở lại đối tượng bộ sưu tập trống bằng cách sử dụng giá trị được lưu trữ (Bộ đếm) cho vòng lặp‘Đối với n = 1 Để truy cậpMyCollection.Add Sheets ("SortSheet"). Các ô (n, 1). Giá trịTiếp theo n‘Lặp đi lặp lại qua bộ sưu tập để chứng minh thứ tự các mục hiện đang ởĐối với từng mục trong MyCollectionMục MsgBoxMục tiếp theo‘Xóa trang tính (bảng sắp xếp) - nếu cần, hãy xóa luônTrang tính ("SortSheet"). Phạm vi (Ô (1, 1), Ô (Bộ đếm, 1)). XóaKết thúc Sub

Mã này đầu tiên tạo một bộ sưu tập với các mục được thêm vào theo thứ tự ngẫu nhiên. Sau đó, nó sao chép chúng vào cột đầu tiên trên một trang tính (SortSheet).

Sau đó, mã sử dụng chức năng sắp xếp trong Excel để sắp xếp dữ liệu trong cột theo thứ tự tăng dần. Mã cũng có thể được sửa đổi để sắp xếp theo thứ tự giảm dần.

Sau đó, bộ sưu tập được làm trống dữ liệu bằng Vòng lặp Tiếp theo. Lưu ý rằng tùy chọn bước được sử dụng để nó xóa từ cuối bộ sưu tập đến đầu. Điều này là do khi nó xóa, các giá trị chỉ mục được đặt lại, nếu xóa ngay từ đầu, nó sẽ không rõ ràng chính xác (chỉ mục 2 sẽ trở thành chỉ mục 1)

Cuối cùng, sử dụng Vòng lặp Tiếp theo khác, các giá trị vật phẩm được chuyển trở lại bộ sưu tập trống

Hơn nữa Đối với Mỗi vòng lặp chứng minh rằng bộ sưu tập hiện đang có thứ tự tăng dần tốt.

Rất tiếc, điều này không liên quan đến bất kỳ giá trị Khóa nào có thể đã được nhập ban đầu, vì không thể đọc các giá trị Khóa

Chuyển một Bộ sưu tập đến một Hàm con / Chức năng

Một tập hợp có thể được chuyển cho một con hoặc một hàm theo cách giống như bất kỳ tham số nào khác

1 Hàm MyFunction (ByRef MyCollection dưới dạng Bộ sưu tập)

Điều quan trọng là phải vượt qua bộ sưu tập bằng cách sử dụng ‘ByRef’. Điều này có nghĩa là bộ sưu tập gốc đã được sử dụng. Nếu bộ sưu tập được chuyển bằng cách sử dụng ‘ByVal’ thì điều này sẽ tạo ra một bản sao của bộ sưu tập có thể gây ra hậu quả đáng tiếc

Nếu một bản sao được tạo bằng cách sử dụng ‘ByVal’ thì bất kỳ điều gì thay đổi bộ sưu tập trong hàm chỉ xảy ra trên bản sao chứ không phải trên bản gốc. Ví dụ: nếu trong hàm, một mục mới được thêm vào bộ sưu tập, mục này sẽ không xuất hiện trong bộ sưu tập ban đầu, điều này sẽ tạo ra một lỗi trong mã của bạn.

Trả lại một Bộ sưu tập từ một Hàm

Bạn có thể trả về một tập hợp từ một hàm giống như cách trả về bất kỳ đối tượng nào. Bạn phải sử dụng từ khóa Đặt

12345 Sub ReturnFromFunction ()Làm mờ bộ sưu tập của tôi dưới dạng bộ sưu tậpĐặt MyCollection = PopulateCollectionMsgBox MyCollection.CountKết thúc Sub

Mã này tạo một quy trình phụ tạo một đối tượng có tên là ‘MyCollection’ và sau đó sử dụng từ khóa ‘Set’ để gọi hàm một cách hiệu quả để điền vào bộ sưu tập đó. Sau khi điều này được thực hiện, nó sẽ hiển thị một hộp thông báo để hiển thị số lượng của 2 mục

1234567 Hàm PopulateCollection () Dưới dạng Bộ sưu tậpLàm mờ MyCollection như một bộ sưu tập mớiMyCollection.Add "Item1"MyCollection.Add "Item2"Đặt PopulateCollection = MyCollectionChức năng kết thúc

Hàm PopulateCollection tạo một đối tượng bộ sưu tập mới và điền nó với 2 mục. Sau đó, nó chuyển đối tượng này trở lại đối tượng bộ sưu tập được tạo trong quy trình con ban đầu.

Chuyển đổi Bộ sưu tập thành Mảng

Bạn có thể muốn chuyển đổi bộ sưu tập của mình thành một mảng. Bạn có thể muốn lưu trữ dữ liệu ở nơi nó có thể được thay đổi và thao tác. Mã này tạo một tập hợp nhỏ và sau đó chuyển nó vào một mảng

Lưu ý rằng chỉ mục tập hợp bắt đầu từ 1 trong khi chỉ số mảng bắt đầu từ 0. Trong khi tập hợp có 3 mục, mảng chỉ cần được định kích thước thành 2 vì có một phần tử 0

1234567891011121314151617 Sub ConvertCollectionToArray ()Làm mờ MyCollection như một bộ sưu tập mớiDim MyArray (2) Dưới dạng chuỗiMyCollection.Add "Item1"MyCollection.Add "Item2"MyCollection.Add "Item3"Đối với n = 1 Đến MyCollection.CountMyArray (n - 1) = MyCollection (n)Tiếp theo nĐối với n = 0 đến 2MsgBox MyArray (n)Tiếp theo nKết thúc Sub

Chuyển đổi một mảng thành một bộ sưu tập

Bạn có thể muốn chuyển một mảng thành một tập hợp. Ví dụ: bạn có thể muốn truy cập dữ liệu theo cách nhanh hơn và thanh lịch hơn bằng cách sử dụng mã để lấy một phần tử mảng.

Hãy nhớ rằng điều này sẽ chỉ hoạt động cho một thứ nguyên duy nhất của mảng vì bộ sưu tập chỉ có một thứ nguyên

123456789101112131415 Sub ConvertArrayIntoCollection ()Làm mờ MyCollection như một bộ sưu tập mớiDim MyArray (2) Dưới dạng chuỗiMyArray (0) = "item1"MyArray (1) = "Lặp lại 2"MyArray (2) = "Item3"Đối với n = 0 đến 2MyCollection.Add MyArray (n)Tiếp theo nĐối với từng mục trong MyCollectionMục MsgBoxMục tiếp theoKết thúc Sub

Nếu bạn muốn sử dụng một mảng nhiều chiều, bạn có thể nối các giá trị mảng với nhau cho mỗi hàng trong mảng bằng cách sử dụng ký tự phân tách giữa các kích thước mảng, để khi đọc giá trị tập hợp, bạn có thể lập trình sử dụng ký tự phân tách để tách các giá trị ra.

Bạn cũng có thể di chuyển dữ liệu vào bộ sưu tập trên cơ sở giá trị thứ nguyên đầu tiên được thêm vào (chỉ số 1), sau đó giá trị thứ nguyên tiếp theo được thêm vào (chỉ số 2), v.v.

Ví dụ, nếu mảng có 4 thứ nguyên, thì mọi giá trị thứ tư trong bộ sưu tập sẽ là một tập giá trị mới.

Bạn cũng có thể thêm các giá trị mảng để sử dụng làm khóa (miễn là chúng là duy nhất), điều này sẽ thêm một cách dễ dàng để định vị dữ liệu cụ thể.

wave wave wave wave wave