Excel定义了很多特定的名称,其作用是代码Excel不同的功能属性或者对象。

本文介绍一个对象,可以将Excel中的某些专用名称返回为一个对象或者是值。

似乎并不太容易理解,也可以这么理解,有一个人叫张三,当你叫的名字的时候,对方答应了你,并且,它可以回答你任何他知道的信息,那么你叫他的这个过程就是本文的内容。

如上图所示,我们要了解Evaluate方法,此方法就是你叫张三的一个过程,不叫他,他是不会回答你的。

具体可以参考下表:

功能

将 Microsoft Excel 名称转换为一个对象或值。

语法

Application.Evaluate

名称

必需/可选

数据类型

说明

Name

必需

Variant

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

该方法可使用下列 Microsoft Excel 名称类型:

1

公式

2

A1 样式引用。 使用 A1 样式表示法对单个单元格的任何引用。 所有引用均被视为绝对引用。

3

范围。 使用 range、intersect 和 union 运算符 (冒号、空格和逗号,分别) 引用。

4

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

5

外部引用。 使用 运算符 ! 引用单元格或在另一个工作簿中定义的名称;例如, Evaluate("[BOOK1.XLS]Sheet1!A1")。

6

Chart 对象。 可以指定任何图表对象名称(如 Legend、Plot Area 或 Series 1)来访问该对象的属性和方法。 例如, Charts("Chart1").Evaluate("Legend").Font.Name 返回图例中使用的字体的名称。

7

窗体控件编号。 可以指定一个数字和一个名称,以引用工作表上的窗体控件。 例如,对于位于工作表上的"开发工具 (插入 - 表单控件 - Evaluate("Label 1").Caption = "Hello" Evaluate("1").Caption = "Hello" 标签) ,请执行相同的操作。

上述内容还是不很清楚表达如何使用,我们看下图示例:

本示例有两个功能,一个是单元格引用,另一个是定义名称引用 。

当然了,还可以进行其它方式引用,上表中7类引用方法。

单元格引用也就是A1 样式引用,是通过单元格地址返回一个Range对象。

简单示例:

ActiveSheet.Evaluate ("A1")

复杂示例:

Sub Evaluate() '单元格引用 Dim s As Worksheet Set s = ActiveSheet Dim xAd As String xAd = "A1" MsgBox s.Evaluate(xAd).Value Set s = Nothing End Sub

同样,都是返回一个A1单元格Range对象。

返回定义名称代码:

Sub 定义名称() '定义名称引用 Dim s As Worksheet Set s = ActiveSheet Dim xAd As String xAd = [B1].Value '定义引用名称名字 Dim i As Integer Dim xName As Object Set xName = s.Evaluate(xAd) '返回引用名称 s.OLEObjects("ListBox1").Object.Clear For i = 1 To xName.Count '添加名称项目到列表框 s.OLEObjects("ListBox1").Object.AddItem s.Evaluate(xAd).Item(i) Next i Set xName = Nothing Set s = Nothing End Sub

严格来说,Evaluate方法对初学者并不适用,因为它太过于难理解,而且许多可直接引用的方法并不需要用这个方法来实现。

但是到更加深入的编程,或者说需要灵活运用一些编程技巧的时候,用到它就显得十分灵活了。

END


如你对本文有独特见解,欢迎关注、收藏。

也可通过私信来获取如下免费应用:

  1. 办公文件管理
  2. 结婚礼单管理
  3. 年会抽奖
  4. 工作日志管理