Excel VBA中的“名称”是什么意思
在MSDN文档中 ,它表示Application.Evaluate
方法采用单个参数,称为Name
并且是Variant
数据types。 在这种情况下, Name
含义是:
公式或对象的名称,使用Microsoft Excel的命名约定 。 名称的长度必须小于或等于255个字符。
*强调我自己的
Excel命名约定究竟是什么意思? 什么规则pipe理和这些logging在哪里?
在文章的“ 备注”部分中,有一些可以使用的Name
types的例子 – 但是可以在方法中使用的一种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过一个Table
或PivotTable
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"