Проверить значения в массиве с помощью словаря VBA - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь сохранить массив уникальных строковых значений из определенного столбца.Однако я не могу получить доступ к значениям в массиве во время выполнения кода.Можете ли вы сказать мне, какая дополнительная строка кода мне понадобится, чтобы проверить, что хранится в массиве, когда он фактически выполняется, и в конечном итоге скопировать эти уникальные значения на другой лист?Код ниже:

Найдите уникальные значения в столбце END DATE, чтобы проверить, нужно ли импортировать несколько дат:

Sub Find_Unique_Values()     
Dim PaceData(), UniqueValues As Variant, r As Long

With PaceDataSheet

PaceData = .UsedRange.value

Set UniqueValues = CreateObject("Scripting.Dictionary")
For r = 2 To UBound(PaceData)
    UniqueValues(PaceData(r, datecolumn.Column)) = Empty

Next r

End With

End Sub

Любая помощь приветствуется.Большое спасибо!

1 Ответ

0 голосов
/ 07 июня 2018

Однако я не могу получить доступ к значениям в массиве во время выполнения кода. - вот способ сделать это легко, используя .UsedRange, как в вашем коде:

Option Explicit

Sub TestMe()

    Dim PaceData As Variant
    Dim someRange As Range

    Set someRange = Worksheets(1).UsedRange 'A1:C10
    PaceData = someRange

    Dim myRows As Long: myRows = someRange.Rows.Count
    Dim myCol As Long: myCol = someRange.Columns.Count

    Dim cnt1 As Long
    Dim cnt2 As Long

    For cnt1 = 1 To myRows
        For cnt2 = 1 To myCol
            Debug.Print PaceData(cnt1, cnt2)
        Next cnt2
    Next cnt1

End Sub

UsedRange "переводится" как двумерный массив, подобный этому:

enter image description here

и знаниеRows.Count и Columns.Count пройденного диапазона, мы получаем размеры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...