我正在研究一个宏,该宏将过滤数据库(每天更新)并计算特定公式。每次运行宏时,都会使用过滤后的信息创建一个新的工作表(唯一命名),并在另一个工作表上执行计算。
我无法使用正确的语法创建宏。每次运行宏时,我需要参考的过滤后的数据都位于工作表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中显示计数。
在这种情况下是否可以使用工作表(索引)引用?我还有什么其他方法可以完成引用没有名称的工作表的任务?我需要引用“名称”变量吗?
答案 0 :(得分:0)
您在那里有一个额外的=
登录,您似乎缺少了一个右括号,但是.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)"