首页 > 解决方案 > 一维数组中的输入范围

问题描述

我正在做一些代码来将一个范围放入一个数组中,这样我就可以通过分析该数组中的数据来创建图。我正在尝试对范围使用通用代码,因为输入可能会根据我要执行的分析类型而有所不同。试图在其他问题中找到解决方案,但没有成功。

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

返回是我无法理解的类型不匹配错误...

标签: excelvba

解决方案


这是一种方法:

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

推荐阅读