ReferTo和RefersToLocal有什么区别?

时间:2017-11-23 03:55:27

标签: excel vba

在Excel VBA中,以编程方式添加命名范围时,我可以将其作为:

ThisWorkbook.Names.Add Name:="FirstName", RefersTo:="=$B$2"

或作为:

ThisWorkbook.Names.Add Name:="FirstName", RefersToLocal:="=$B$2"

现在,有人能告诉我RefersToRefersToLocal之间的区别吗?他们似乎做了同样的事情,Excel文档也解释不了多少。 (它说后者使用' 本地化文本'但不解释这意味着什么。)

1 个答案:

答案 0 :(得分:2)

Formula允许VBA代码使用美国英语语法编写Excel公式,而FormulaLocal允许VBA代码使用用户的当前语言设置编写公式。 (并且还有FormulaR1C1FormulaR1C1Local属性允许以R1C1表示法输入公式。)

以类似的方式,RefersTo允许使用美国英语语法输入“命名范围”的公式(实际上不仅仅是对范围的引用),而RefersToLocal允许使用当地语言。 (并且还有RefersToR1C1RefersToR1C1Local属性,以允许在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())计算。