【问题标题】:Excel VBA: Formula Syntax to refer to Worksheet Index Number (Relative Instead of Name)Excel VBA:引用工作表索引号的公式语法(相对而不是名称)
【发布时间】:2018-07-30 22:04:45
【问题描述】:

我正在开发一个可以过滤数据库(每天更新)并计算特定公式的宏。每次运行宏时,将使用过滤的信息创建一个新工作表(唯一命名),并且将在另一个工作表上执行计算。

我无法使用正确的语法创建宏。每次运行宏时,我需要参考的过滤数据位于工作表 #3(唯一命名)上。我是 VBA 新手,不了解将工作表(索引)作为 R1C1 公式中的工作表引用所需的语法。现在,我的代码如下所示:

Dim LR As Long

   LR = Worksheets(3).Cells(Rows.Count, 1).End(x1Up).Row  

   Range("G6").Select
   ActiveCell.FormulaR1C1 = _ 
      "=COUNTIF(='Worksheets(3)'!R6C5:R" & LR &"C5,R[-1]C"

如果一列 Years(可变长度)等于 R[-1]C(包含特定年份的单元格),则代码正在计数,并将在单元格 G6 中显示计数。

在这种情况下是否可以使用工作表(索引)引用?我还能如何完成引用没有名称的工作表的任务?我需要引用“名称”变量吗?

【问题讨论】:

  • 在 countif 中使用完整列引用确实没有任何惩罚,除非您的值低于您想要的可能会产生倾斜结果的值。

标签: vba excel


【解决方案1】:

您在那里有一个额外的 = 符号,您似乎缺少一个右括号,但 .Address external:=true 产生了一个很好的范围参考。

Dim LR As Long, str as string

with Worksheets(3)
    LR = .Cells(Rows.Count, 1).End(xlUp).Row 
    str = .range(.cells(6, 5), .cells(lr, 5)).address(external:=true, ReferenceStyle:=xlR1C1)
end with

Range("G6").FormulaR1C1 = _ 
  "=COUNTIF(" & str & ", R[-1]C)"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-28
    • 2018-04-07
    • 1970-01-01
    • 1970-01-01
    • 2022-11-13
    • 1970-01-01
    • 2015-03-30
    • 1970-01-01
    相关资源
    最近更新 更多