Диапазон ввода в массиве 1D - PullRequest
0 голосов
/ 11 ноября 2019

Я делаю некоторый код, чтобы поместить диапазон в массив, чтобы я мог создавать графики, анализируя данные внутри этого массива. Я пытаюсь использовать общий код для диапазона, поскольку входные данные могут отличаться в зависимости от типа анализа, который я хочу выполнить. Пытался найти решение этой проблемы в других вопросах, но безуспешно.

Dim DieBankArray As Variant

last_row = Sheets("Tabela CT geral").Range("A2").End(xlDown).Row 'Last row of the data set
For i = 0 To last_row - 2                                       '-2 to exclude the first line and another value because the array first position is 0, not 1
    DieBankArray(i) = Range("A" & i + 2)
Next

Возвращение - ошибка несоответствия типов, которую я не могу понять ...

1 Ответ

1 голос
/ 11 ноября 2019

Вот один подход:

Function RangeTo1DArray(rngStart As Range)
    Dim rv(), arr, r As Long, n As Long
    'read the source data to an array for better performance
    With rngStart.Parent
        arr = .Range(rngStart, .Cells(Rows.Count, rngStart.Column).End(xlUp)).Value
    End With
    n = UBound(arr, 1)
    ReDim rv(0 To n - 1)
    'Fill the output array.  Note: purposefully not using transpose()
    '   to avoid its limitations
    For r = 1 To n
        rv(r - 1) = arr(r, 1)
    Next r
    RangeToArray = rv
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...