无法在 Excel VBA 中返回整数数组



我只是在字符串数组上遇到了类似的问题,现在它正在工作,但事实并非如此。我尝试将整数数组作为 Integer(( 类型和 Variant(( 返回,并使用 Cint(( 循环遍历和转换每个元素。无论哪种方式,我都会得到类型不匹配。这是代码:

Dim pathTimeList() As Integer
ReDim pathTimeList(0 To stepCount)
pathTimeList = set_path_time_list(stepCount)

以下是函数代码:

Private Function set_path_time_list(ByVal stepCount As Integer) As Integer

Dim pathTimeList() As Integer
ReDim pathTimeList(0 To stepCount - 1)
Dim loopIndex As Integer
loopIndex = 0
Dim firstRow As Integer
Dim lastRow As Integer
Dim firstColumn As Integer
Dim lastColumn As Integer
firstRow = 3
lastRow = 27
firstColumn = 2
lastColumn = 2
For i = firstRow To lastRow
For j = firstColumn To lastColumn
pathTimeList(loopIndex) = Cells(i, j).Value
Next j
loopIndex = loopIndex + 1
Next i
set_path_time = pathTimeList
End Function

首先,要使函数返回整数数组,请在函数声明中遵循带有()的返回类型以指示数组:

Private Function set_path_time_list(ByVal stepCount As Integer) As Integer()

其次,将最后一条语句更改为:

set_path_time_list = pathTimeList

几个可选的清理项。在最后一条语句之后,请考虑解除分配您使用Redim获得的存储:

Erase pathTimeList

最后,您应该将ij声明为IntegerLong

希望有帮助

最新更新