Có cách nào để tham gia bộ sưu tập trong VBA không? Tôi có thể tìm thấy tham gia (mảng, ";"), nhưng chức năng này không thể áp dụng cho bộ sưu tập.Cách tham gia bộ sưu tập trong VBA
Cảm ơn.
Có cách nào để tham gia bộ sưu tập trong VBA không? Tôi có thể tìm thấy tham gia (mảng, ";"), nhưng chức năng này không thể áp dụng cho bộ sưu tập.Cách tham gia bộ sưu tập trong VBA
Cảm ơn.
Thật không may, không, không có gì tích hợp sẵn.
Bạn sẽ phải hoặc là
chuyển đổi bộ sưu tập để một mảng (không có built-in cho rằng một trong hai, bạn sẽ phải loop through all the items) và sau đó sử dụng Join(array, ";")
hoặc
tham gia bộ sưu tập của bạn "theo cách khó" (đặt cờ first
, lặp qua các mục, thêm ";" nếu không first
, xóa first
, thêm mục).
Tôi cần làm rõ rằng những điều sau đây KHÔNG phải là câu trả lời cho câu hỏi ở trên. Tuy nhiên, đối với bất cứ ai đến đây tự hỏi làm thế nào để hợp nhất các bộ sưu tập (xảy ra với tôi), mã dưới đây sẽ bổ sung thêm các nội dung của một bộ sưu tập (col2) khác (col1):
Sub addColToCol(col1 As Collection, col2 As Collection)
Dim i As Integer
For i = 1 To col2.Count
col1.Add col2.Item(i)
Next i
End Sub
Nếu bạn muốn giữ gìn nội dung của từng bộ sưu tập, kê khai một bộ sưu tập bổ sung.
Dim super_col As New Collection
addColToCol super_col, col1
addColToCol super_col, col2
Đây không phải là câu trả lời cho câu hỏi OP (có thể là câu hỏi khác, nhưng không phải câu hỏi này) –
làm thế nào để nhận được phiếu bầu, nhưng câu trả lời đã chọn chỉ là "KHÔNG" –
Cảm ơn, tôi đã không nhận thấy. Tôi đã thực sự tìm kiếm cách hợp nhất các bộ sưu tập và đây là kết quả tìm kiếm đầu tiên tôi nhận được, vì vậy tôi nghĩ tôi sẽ thêm câu trả lời cho bất kỳ ai tình cờ gặp bài đăng này đang tìm kiếm trợ giúp. –
Đây là làm thế nào để tham gia nó:
Join(CollectionToArray(colData), ",")
Và chức năng:
Public Function CollectionToArray(myCol As Collection) As Variant
Dim result As Variant
Dim cnt As Long
ReDim result(myCol.Count - 1)
For cnt = 0 To myCol.Count - 1
result(cnt) = myCol(cnt + 1)
Next cnt
CollectionToArray = result
End Function
Hãy xem [những gì anh chàng này đã làm] (https://github.com/ ptwales/VBEX) - phương thức ['List.ToString'] (https://github.com/ptwales/VBEX/blob/master/src/List.cls#L452-L461) sẽ làm những gì bạn muốn làm ở đây. –