我有一个看似基本的问题,但找不到解决它的任何资源。

简而言之,我只想将一个单元格范围(全部为一列)的内容加载到数组中。

我能够通过

DirArray = Array(Range("A1"), Range("A2"))

但是由于某种原因,我无法以这种方式创建数组:
DirArray = Array(Range("A1:A2"))

我的实际Range更长(并且长度可能会有所不同),因此我不想以这种方式单独枚举单元格。谁能告诉我如何正确地将整个范围加载到数组中?

使用后面的代码:
MsgBox UBound(DirArray, 1)


MsgBox UBound(DirArray)

返回0,而使用前者则返回1。

最佳答案

只需将变量定义为变量,并使它们相等即可:

Dim DirArray As Variant
DirArray = Range("a1:a5").Value

不需要Array命令。

关于arrays - 从VBA中的范围创建阵列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37689847/

10-10 18:52