VBA参考命名范围

时间:2014-07-01 11:10:36

标签: excel vba excel-vba

我刚开始在我的VBA中使用命名引用,但遇到了一个小问题。

我有一个名为“SiteCount”的命名引用,用于计算列中的网站数量

=COUNTA(Data!$B:$B)

它在范围内保存为工作簿,当我在单元格中使用它时可以正常工作

=SiteCount

我以为我可以在我的代码中使用它而不是复制计算,但是我无法保存该值,即使只是

Sitecount = Range("SiteCount") 

我也尝试过使用工作表名称,但是我得到了相同的1004“方法范围的对象全局失败”

我猜它很简单。但我无法弄清楚。 我很感激地建议:)

3 个答案:

答案 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