Arrays 从范围值VBA创建数组

Arrays 从范围值VBA创建数组,arrays,excel,vba,Arrays,Excel,Vba,我正在尝试执行一个宏,其中需要一个值数组。 此数组是从大小可变的范围创建的。 我尝试了以下方法,但始终出现错误: Sub chase() Dim rng As Range Dim myarray() As Variant last = Range("r1").End(xlDown).Address MsgBox last myarray = Range("r1:" & last).Value For i = LBound(myarray) To UBound(myarray)

我正在尝试执行一个宏,其中需要一个值数组。 此数组是从大小可变的范围创建的。 我尝试了以下方法,但始终出现错误:

Sub chase()


Dim rng As Range
Dim myarray() As Variant

last = Range("r1").End(xlDown).Address
MsgBox last

myarray = Range("r1:" & last).Value
For i = LBound(myarray) To UBound(myarray)
        msg = msg & myarray(i) & vbNewLine
    Next i
MsgBox "the values of my dynamic array are: " & vbNewLine & msg


End Sub
知道怎么处理吗


谢谢

使用范围分配中的最后一行号

dim last as long

last = Range("r1").End(xlDown).row
myarray = Range("r1:r" & last).Value
您正在创建一个二维阵列。尽管某些函数默认为第一秩,但最好将二维数组视为二维数组

For i = LBound(myarray, 1) To UBound(myarray, 1)
        msg = msg & myarray(i, 1) & vbNewLine
Next i

使用范围指定中的最后一行号

dim last as long

last = Range("r1").End(xlDown).row
myarray = Range("r1:r" & last).Value
您正在创建一个二维阵列。尽管某些函数默认为第一秩,但最好将二维数组视为二维数组

For i = LBound(myarray, 1) To UBound(myarray, 1)
        msg = msg & myarray(i, 1) & vbNewLine
Next i
见下文:

Sub chase()

  Dim i As Integer, msg As String
  Dim last As Variant
  Dim rng As Range
  Dim myarray As Variant

  last = Sheet1.Range("r1").End(xlDown).Address
  MsgBox last

  myarray = Sheet1.Range("r1:" & last).Value
  For i = LBound(myarray) To UBound(myarray)
    msg = msg & myarray(i, 1) & vbNewLine
  Next i

  MsgBox "the values of my dynamic array are: " & vbNewLine & msg

End Sub
见下文:

Sub chase()

  Dim i As Integer, msg As String
  Dim last As Variant
  Dim rng As Range
  Dim myarray As Variant

  last = Sheet1.Range("r1").End(xlDown).Address
  MsgBox last

  myarray = Sheet1.Range("r1:" & last).Value
  For i = LBound(myarray) To UBound(myarray)
    msg = msg & myarray(i, 1) & vbNewLine
  Next i

  MsgBox "the values of my dynamic array are: " & vbNewLine & msg

End Sub

确保使用引用避免意外结果的工作表作为范围的前缀。您的数组是二维(x,y),因此您也需要为第二个维度编制索引。确保使用引用避免意外结果的工作表作为范围的前缀。您的数组是二维(x,y)所以你也需要对第二个维度进行索引。一种风格的注释——我是一个挑选栏目的大粉丝,从栏杆的底部向上爬,而不是从顶部开始,向下走——这会让你找到底部,即使你的数据中间有一个空隙。风格笔记-我是挑选栏目的大粉丝。从柱子的底部向上爬,而不是从顶部开始向下,这会让你找到底部,即使你的数据中间有一个空隙。