arrays - VBA - 通过范围定义的二维数组循环

标签 arrays vba excel

好的,所以我在这里找到了解决这个问题的方法,但它不在 VBA 中,所以我只需要正确的语法来从数组中提取信息。

我已经从工作表上的范围定义了一个数组。我发现这实际上不是我最初想到的一维数组,即使二维参数只是 1。

现在我只是试图循环遍历数组以帮助我了解它们是如何工作的,但我得到了一个下标超出范围的错误。

Dim arr1 As Variant
Dim e As Variant

    arr1 = Array(ActiveSheet.Range("A1:A4"))

For e = LBound(arr1) To UBound(arr1)
    MsgBox (arr1(e, 1))
Next e

如何修复 MsgBox (arr1(e,1))线?

最佳答案

有几个问题:

  • 您不需要 Array(..)为数组分配范围时
  • 您应该在 Ubound 和 Lbound
  • 上指定维度

    所以在这里:
    Dim arr1 As Variant
    Dim e As Long
    
        arr1 = ActiveSheet.Range("A1:A4").Value
    
    For e = LBound(arr1,1) To UBound(arr1,1)
        MsgBox arr1(e, 1)
    Next e
    

    关于arrays - VBA - 通过范围定义的二维数组循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39666187/

    相关文章:

    excel - Excel内存不足错误

    vba - 在新页面部分中初始存在的 pdf 文件末尾添加打印区域内容(附加)

    excel - 使用 Powershell 将 CSV 数据插入 Excel 中下一个可用的相应单元格

    c# - 使用 Microsoft.Office.Interop.Excel 另存为错误导出到 .xlsx

    javascript - 使用 for 循环对数组进行排序失败

    excel - 获取数组长度?

    vba - 从 Access VBA 运行存储过程

    c++ - 骑士之旅将数组传递到链表等等

    c++ - 是否可以使用 operator new 和 initialiser 语法初始化非 POD 数组?

    arrays - 如何在 perl 中分解数组散列中的公共(public)元素?