提问人:user2297268 提问时间:10/14/2023 最后编辑:JohnMuser2297268 更新时间:10/14/2023 访问量:43
VBA 引用公式中使用的列范围
VBA refer to a column used range in a formula
问:
我有一个数组公式,用于计算列中的唯一记录。我正在尝试在 VBA 模块中使用它,但需要弄清楚如何根据列的已用范围更改范围,因为每次运行它时它都会更改。我使用的公式是,只需要了解如何动态更改 H 列中的范围。任何帮助都是值得赞赏的。=SUM(1/COUNTIF(H2:H67,H2:H67))
我已经在网上进行了研究,但是对于如何将使用的范围隔离到单个列以及如何在我拥有的公式中引用它,我有所欠缺。
答:
1赞
Tim Williams
10/14/2023
#1
下面是使用 VBA 计算工作表公式的示例:
Sub Tester()
Dim ws As Worksheet, lr As Long
Set ws = ActiveSheet 'for example
lr = ws.Cells(Rows.Count, "H").End(xlUp).Row 'last row in col H
If lr > 1 Then 'any data?
'evaluate the formula
Debug.Print ws.Evaluate(Replace("=SUM(1/COUNTIF(H2:H<lr>,H2:H<lr>))", "<lr>", lr))
'alternate using UNIQUE()
Debug.Print UBound(ws.Evaluate("=UNIQUE(H2:H" & lr & ")"))
End If
End Sub
评论
Intersect(ActiveSheet.UsedRange, ActiveSheet.Columns("H"))