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

在MSDN文档中 ,它表示Application.Evaluate方法采用单个参数,称为Name并且是Variant数据types。 在这种情况下, Name含义是:

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

*强调我自己的

Excel命名约定究竟是什么意思? 什么规则pipe理和这些logging在哪里?

在文章的“ 备注”部分中,有一些可以使用的Nametypes的例子 – 但是可以在方法中使用的一种types是

定义的名字。 您可以用macros的语言指定任何名称。

这引发了这个问题。 什么是“macros观语言中的名字”定义为?

或者把它和我想要解决的具体编程问题更紧密地联系起来; 什么可以在Application.Evaluate(blah)的函数来正确评估?

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

一个定义的名字

例如,如果select单元格“A1”,并在屏幕的左上angular将“A1”更改为"MyCellName"您现在有一个Named Range 。 这允许您在公式中引用"MyCellName"而不是"A1" 。 这对于恒定的input范围或为更大范围定义名称时特别有用。

命名的范围可以重叠

举个例子,你现在突出显示"A1-B3" ,把Name "MyNamedRange" 。 和以前一样,你可以在公式中使用这个名字。 尽pipe它在"MyNamedRange"范围内,但仍然可以引用"MyCellName"来引用"A1" "MyNamedRange"

自动名称

曾经创build过一个TablePivotTable Table ? 这些本质上也是名字。 他们可以用他们的名字来引用。 例如,如果您创build一个表,则默认名称是Table1 。 在一个公式中,你可以使用Table1来引用整个表格(对VLOOKUPS超级有用)。

默认名称

最常用的名称是简单的范围。 "A1"是指向单元格"A1" 。 每个细胞都一样。 即使已定义名称的单元格仍然可以通过它们的范围引用来引用。

为了这篇文章的目的

所有的文章都是这样说的,你可以使用引用范围的标准方法来引用一个范围。 如果我做Application.Evaluate "MyNamedCell"它将评估"A1" ,如果我做Application.Evaluate "A1"它将再次评估"A1"

为了评估variables,实际发生的事情是Application.Evaluate首先parsing范围参考(确定你所传递的参数是什么意思),然后对这个对象进行操作。 只要你传递了一个可以被评估的有效的Range引用,它就会评估它。 这意味着你可以把一堆范围的引用放到一个类的数组中,这个类的属性是…看看我要去哪里? 使用任何你想要的,但最后它需要知道范围在哪里。

编辑:关于你更新的'名字是什么?'的编辑,你需要一些可以传入和评估的string。 非常简单

 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"