我刚开始在我的VBA中使用命名引用,但遇到了一个小问题。
我有一个名为“SiteCount”的命名引用,用于计算列中的网站数量
=COUNTA(Data!$B:$B)
它在范围内保存为工作簿,当我在单元格中使用它时可以正常工作
=SiteCount
我以为我可以在我的代码中使用它而不是复制计算,但是我无法保存该值,即使只是
Sitecount = Range("SiteCount")
我也尝试过使用工作表名称,但是我得到了相同的1004“方法范围的对象全局失败”
我猜它很简单。但我无法弄清楚。 我很感激地建议:)
答案 0 :(得分:3)
Evaluate()应该这样做,因为它是公式名称而不是命名范围
Dim siteCount as Long
siteCount = Evaluate("SiteCount")
答案 1 :(得分:3)
它不是命名范围,它是一个命名公式,所以你必须以不同的方式引用它。您可以使用:
lSiteCount = [SiteCount]
请注意,变量名称不能与公式名称相同!
或
SiteCount = Sheets("Data").Evaluate("SiteCount")
或
SiteCount = Application.Evaluate("SiteCount")
答案 2 :(得分:1)
如果您想获取特定命名公式的值,请:
Sub WhatsInAName()
For Each n In ActiveWorkbook.Names
If n.Name = "SiteCount" Then
MsgBox n.Value & vbCrLf & Evaluate(n.Value)
End If
Next n
End Sub