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
如你对本文有独特见解,欢迎关注、收藏。
也可通过私信来获取如下免费应用:
- 办公文件管理
- 结婚礼单管理
- 年会抽奖
- 工作日志管理