Excel VBA中的“名称”是什么意思

时间:2017-08-01 16:39:26

标签: excel vba excel-vba

MSDN documentation中,它表示Application.Evaluate方法采用单个参数,称为Name且数据类型为VariantName在此上下文中的含义是:

  

使用 Microsoft Excel命名约定的公式或对象名称。名称的长度必须小于或等于255个字符。

*强调我自己的

Excel命名约定究竟是什么意思?有哪些规则可以管理它们以及这些规则记录在哪里?

在本文的备注部分中,有一些可以使用的Name可能类型的示例 - 但是可以在方法中使用的一种类型

  

定义名称。您可以使用宏的语言指定任何名称。

这引出了一个问题;什么是宏的语言中的“名称”定义为?

或者将其与我正在努力解决的具体编程问题更紧密地联系起来; blah Application.Evaluate(blah)可以正确评估函数的内容是什么?

1 个答案:

答案 0 :(得分:6)

在Excel中,Name(在范围的上下文中)可能意味着一些事情:

定义名称

例如,如果您选择单元格“A1”并在屏幕的左上角将“A1”更改为"MyCellName",那么您现在拥有Named Range。这样,您就可以在公式中引用"MyCellName"而不是"A1"。这对于常量输入范围或定义更大范围的名称特别有用。

命名范围可以重叠

说,例如,您现在突出显示"A1-B3"并将Name更改为"MyNamedRange"。您和以前一样,可以在公式中使用此名称。尽管"MyCellName"位于"A1"之内,您仍然可以引用"MyNamedRange"来引用Table

自动名称

曾创建过PivotTableTable1?实质上,这些也成为了名字。他们可以用他们的名字来提及。例如,如果创建表,则默认名称为Table1。在公式中,您可以使用"A1"来引用整个表格(对VLOOKUPS非常有用)。

默认名称

最常见的名称是普通范围。 "A1"是指向单元格Application.Evaluate "MyNamedCell"的名称。每个其他细胞都一样。即使具有已定义名称的单元格仍可通过其范围引用引用。

用于文章的目的

所有文章都说,您可以使用引用范围的标准方法来引用范围。如果我执行"A1",则会评估Application.Evaluate "A1",如果我"A1",则会再次评估Application.Evaluate

为了评估变量,实际发生的是Range首先解析范围引用(弄清楚传递的参数是什么意思)然后在该对象上运行。只要您传递了可以评估的有效Dim SomeFoo as Range Set SomeFoo = ThisWorkbook.Sheets(1).Range ' Isnt what we need since evaluate wants a string ' NOTE: This will implicitly take the .Value property of SomeFoo and ' try to evaluate that. This is fine, but bad coding practice (assuming SomeFoo's value is the address) Application.Evaluate(SomeFoo).Value = "SomeString" ' The address can be successfully evaluated as a string Application.Evaluate(SomeFoo.Address).Value = "SomeString" ' If SomeFoo contains an address/name it can be successfully evaluated Application.Evaluate(SomeFoo.Value).Value = "SomeString" 引用,它就会对其进行评估。这意味着您可以将一堆范围引用放入一个类中的数组数组中,该类是...的属性...请参阅我要使用的内容? 使用你想要的任何东西,但最后它需要知道范围在哪里。

编辑:关于“名称是什么?”的更新编辑,您需要一些可以传入和评估的字符串。非常直截了当。

:car_brand_eq