【问题标题】:VBA .Range Two Brackets or ParenthesesVBA .Range 两个方括号或圆括号
【发布时间】:2019-08-06 08:27:13
【问题描述】:

尝试使用现有的一段 VBA 代码并试图弄清楚这段代码在做什么。它指的是某些单元格,但我想知道语法。

这是来自我正在尝试更新的现有代码。

FilePath = ActiveSheet.Range("rng_File_Path")(iRow, 1).Value

.Range 函数中并排的括号有什么作用?

【问题讨论】:

  • 它将单元格的值分配给变量FilePath。命名范围“rng_File_Path”的iRowth 行(和第一列)中的单元格。

标签: excel vba syntax


【解决方案1】:

等价于:

FilePath = ActiveSheet.Range("rng_File_Path").Cells(iRow, 1).Value

【讨论】:

  • 谢谢 - 有道理
  • @mburn23 - 如果这回答了你的问题,请接受它:-)
【解决方案2】:

访问Range("rng_File_Path")(irow,1)

例如,如果我有一个 Range 引用为:

 rng_File_Path = Range("A1:A4")

那么:

Range("rng_File_Path")(2,1) 会给我A2

【讨论】:

    【解决方案3】:
    • ActiveSheet:参考代码执行时激活的工作表
    • Range("rng_File_Path"):引用一个名为“rng_File_Path”的范围。您可以在以下位置找到确切的范围地址:公式选项卡 - 定义的名称 - 名称管理器
    • .Cells(iRow, 1):引用具有行的单元格 - iRow(iRow 最可能从循环中获取其值)和来自“rng_File_Path”的第 1 列

    在我看来,使用这种方法循环命名范围是错误的。假设命名范围有 4 行 3 列,您引用 .Range("rng_File_Path").Cells(20, 10).Value。答案将是 Nothing 而不是错误。命名范围只有 4 行(您正在寻找第 20 行)和 3 列(您正在寻找第 10 列)

    【讨论】:

      猜你喜欢
      • 2011-01-12
      • 2021-01-11
      • 2021-10-12
      • 2014-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多