将上边界传递给数组

Mar*_*ain 3 excel vba excel-vba

我希望我的宏从另一张表上的电话号码列表中读取,计算行数,然后从A1中构建一个数组:从行计数中....该数组将始终从A1开始.

Dim lrow As Variant 

lrow = Cells(Rows.Count, 1).End(xlUp).Row

Dim PhonesArray as Variant

PhonesArray = " [A1:A" & lrow & "].Value2
Run Code Online (Sandbox Code Playgroud)

我无法将上边界(lrow)传递给PhonesArray.

它应该运行为

PhonesArray = [A1:A**40**].Value2
Run Code Online (Sandbox Code Playgroud)

lrow变量正确计算,但我无法将其传递给数组构造.静态范围按预期工作.如果此问题已得到解决,我们非常感谢您提供任何帮助并提前道歉.我无法通过搜索找到解决方案.

Cal*_*mDA 6

一般来说,用[A1]类型简写来引用你的单元格是一个坏主意,它不支持像这样的字符串放在一起.请Range()改用,你会有几个选择:

  • Range("A1:A" & lRow)
  • Range("A1").Resize(lrow,1)

鉴于您提供的代码,我将废弃该lrow变量并使用此代码:

Dim PhonesArray As Variant

With ThisWorkbook.Worksheets("Sheet1")
    PhonesArray = Range(.Range("A1"), .Cells(.Rows.Count, 1).End(xlUp)).Value2
End With
Run Code Online (Sandbox Code Playgroud)