У меня есть массив в виде:
["1/1/2019", "1/2/2019", "1/2/2019"]
Я перебираю каждый элемент в массиве и добавляю результат в коллекцию с намерением удалить дубликаты перед печатью.
VBA добавляет только первый элемент в мою коллекцию.
Например, мой вывод в настоящее время:
"1/1/2019"
Вместо:
"1/1/2019","1/2/2019"
Здесьмой соответствующий код:
Dim a_date() As Variant
Dim date_duplicates_removed As New Collection
Dim j As Long
j = 0
ReDim a_date(Range(date_range).Cells.Count)
For Each r In ThisWorkbook.Worksheets("Name").Range(date_range)
a_date(j) = r.Value
j = j + 1
Next r
On Error Resume Next
For x = 0 To UBound(a_date)
date_duplicates_removed.Add a_date(x), CStr(a_date(x))
MsgBox (date_duplicates_removed(x))
Next x
Где дата будет диапазоном дат с включенными дубликатами.
Это странно, потому что:
- Я проверил UBound (дата) и результат был 12
- Я получил доступ к MsgBox date_duplicates_removed (3) и получил значение.
- x делает приращение к правильному результату.
Я не могу получитьMsgBox для печати всех уникальных дат и только первой.