在Excel VBA中,以编程方式添加命名范围时,我可以将其作为:
ThisWorkbook.Names.Add Name:="FirstName", RefersTo:="=$B$2"
或作为:
ThisWorkbook.Names.Add Name:="FirstName", RefersToLocal:="=$B$2"
现在,有人能告诉我RefersTo
和RefersToLocal
之间的区别吗?他们似乎做了同样的事情,Excel文档也解释不了多少。 (它说后者使用' 本地化文本'但不解释这意味着什么。)
答案 0 :(得分:2)
Formula
允许VBA代码使用美国英语语法编写Excel公式,而FormulaLocal
允许VBA代码使用用户的当前语言设置编写公式。 (并且还有FormulaR1C1
和FormulaR1C1Local
属性允许以R1C1表示法输入公式。)
以类似的方式,RefersTo
允许使用美国英语语法输入“命名范围”的公式(实际上不仅仅是对范围的引用),而RefersToLocal
允许使用当地语言。 (并且还有RefersToR1C1
和RefersToR1C1Local
属性,以允许在R1C1表示法中输入“命名范围”的公式。)
所以在西班牙语Excel中,这个:
Range("A1").Formula = "=DAY(NOW())"
相当于:
Range("A1").FormulaLocal = "=DIA(AHORA())"
和此:
ThisWorkbook.Names.Add Name:="TodaysDayOfMonth", RefersTo:="=DAY(NOW())"
相当于:
ThisWorkbook.Names.Add Name:="TodaysDayOfMonth", RefersToLocal:="=DIA(AHORA())"
这些“范围名称”可能看起来很奇怪,但可以有用,因为它们可以在VBA中使用
... = Range("TodaysDayOfMonth")
或在Excel中
=IF(TodaysDayOfMonth=15,1,0)*A5
无需在实际单元格内进行DAY(NOW())
计算。