Option Base 0并从范围创建数组

问题描述 投票:0回答:1

我正在从Excel中的一系列单元格创建数组。所有工作,创建数组。问题是我使用“ Option Base 0”,而我所有其他数组都是(0到x),但是通过读取范围创建的数组是(1到x + 1)。有没有办法从第一个元素为数字0的范围读取数组?

示例代码:

Sub ArraysFromRange()
Dim myArray(9) As Integer, myArray2() As Variant
Dim i As Integer
Dim rngTarget As Range, rngTarget2 As Range

Range("A1:M20").Clear
For i = 0 To UBound(myArray)
    myArray(i) = i
Next i
With ThisWorkbook.Worksheets("test")
    Set rngTarget = .Range(.Cells(1, 1), .Cells(UBound(myArray) + 1, 1))
    Set rngTarget2 = .Range(.Cells(1, 2), .Cells(UBound(myArray) + 1, 2))
End With
rngTarget = Application.Transpose(myArray)
myArray2 = Application.Transpose(rngTarget)

End Sub

此后我有两个数组,但第一个是(0至9),第二个是(1至10)。如果我在代码中有很多数组,我必须始终记住哪一个数组应具有索引-1。

问题二:是否有可能以“布尔”或“整数”而不是“变量”的形式读取范围中的数组?

arrays excel vba excel-vba range
1个回答
0
投票

有没有办法从第一个元素编号为0的范围中读取数组?

是否有可能以“布尔”或“整数”而不是“变量”的形式读取范围中的数组?

SomeRange引用了> 1个单元格的连续范围,SomeRange.Value返回基于1的2D变量数组。就是这样,您不能更改它。

正如其他人所指出的,以及对所建议的重复Q的回答,您始终可以从该数组中将值[[copy转换为另一个具有不同基本和/或类型的数组,但这是不同的故事。

© www.soinside.com 2019 - 2024. All rights reserved.