Worksheet对象的Evaluate方法,有时会非常有用。 但是在这里,只是简单地介绍该方法。在专题文章中,我会对该方法进行详细剖析。
Evaluate方法将Excel名称转换成对象或值。 其语法为: 工作表对象.Evaluate(Name) 说明:
示例1:输入值并设置单元格格式 如下图1所示的工作表,将单元格区域A1:A7命名为“Data”,使用含有Evaluate方法的代码在该区域输入数据并设置为加粗。 图1 代码如下: Sub testEvaluate() Dim rng As Range Dim i As Integer
i = 1
For Each rng InEvaluate('Data') rng.Value = i i = i 1 Next rng
Evaluate('Data').Font.Bold = True End Sub 可以看出,Evaluate(“Data”)等价于Range(“A1:A7”)。 可以将上述代码中的Evaluate('Data')修改为[Data],效果相同,但更简洁。 Sub testEvaluate() Dim rng As Range Dim i As Integer
i = 1
For Each rng In [Data] rng.Value = i i = i 1 Next rng
[Data].Font.Bold = True End Sub
示例2:获取单元格的值 下面的代码获取当前工作表单元格A1中的值: Sub GetValueWithEvaluate() MsgBoxEvaluate('A1').Value End Sub 运行后的结果如图2。 图2 上面代码中的Evaluate('A1')可以修改为[A1]。
示例3:获取另一工作簿中单元格的值 下面的代码将工作表Book2的工作表Sheet1中单元格区域A1:A5的值输入到当前工作簿的工作表Sheet3中。 Sub GetValueFromAnotherWB() Sheet3.[A1:A5] =Evaluate('[Book2.xlsx]Sheet1!A1:A5').Value End Sub 或者: Sub GetValueFromAnotherWB() Sheet3.[A1:A5] =[[Book2.xlsx]Sheet1!A1:A5].Value End Sub
通过以上简单的示例可以发现,这里使用的Evaluate方法和直接使用Range对象引用单元格非常相似。 本文只是简单介绍一下Evaluate方法,让你对其有所了解。 然而,为什么还要使用Evaluate方法呢?我会在专题文章中详解。 本文为原创文章,转载请联系我(xhdsxfjy@163.com)或者注明出处。 欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。 |
|