分享

Evaluate 方法

 旅行中的甘蓝 2020-04-11

Evaluate 方法

请参阅 应用于 示例 特性

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

expression.Evaluate(Name)

expression  对于 Application 对象可选,对于 Chart 对象,DialogSheet 对象,和 Worksheet 对象必需。该表达式返回“应用于”列表中的对象之一。

Name  String 类型,必需。对象名使用 Microsoft Excel 的命名约定。

说明

下列几类 Microsoft Excel 名称可以使用此方法:

  • A1-样式引用。可以引用任何以 A1-样式符号表示的单个单元格。所有引用都是绝对引用。

  • 单元格区域。可在区域引用中使用区域、交集和联合运算符(分别为冒号、空格和逗号)。

  • 已定义的名称。可用宏语言指定任意名称。

  • 外部引用。可以使用“!”操作符引用另一工作簿上的单元格或已定义的名称。例如,Evaluate("[BOOK1.XLS]Sheet1!A1")

注意  使用方括号(例如,"[A1:C5]")与用字符串参数调用 Evaluate 方法是等效的。例如,下列表达式对是等价的。

[a1].Value = 25Evaluate("A1").Value = 25
trigVariable = [SIN(45)]
trigVariable = Evaluate("SIN(45)")
Set firstCellInSheet = Workbooks("BOOK1.XLS").Sheets(4).[A1]
Set firstCellInSheet = _
    Workbooks("BOOK1.XLS").Sheets(4).Evaluate("A1")

使用方括号的优点在于代码较短。使用 Evaluate 的优点在于参数是字符串,这样您既可以在代码中构造该字符串,也可以使用 Visual Basic 变量。

示例

本示例将工作表 Sheet1 上 A1 单元格的字体设置为加粗。

Worksheets("Sheet1").Activate
boldCell = "A1"
Application.Evaluate(boldCell).Font.Bold = True
 
再看下几个实例“:
A1单元格内容为:2005-9-8,B3单元格内容为:2007-4-5,要求出它们间隔的年、月、日,在工作表中可以使用Datedif函数,而且结果非常精确,但在VBA中却比较麻烦。因为Datedif函数不能直接在VBA中使用,而使用VBA提供的函数却不能得到精确的计算结果。于是很多人在写代码时就自编一个函数来实现Datedif函数的功能,其实借助VBAEvaluate函数我们同样可以很方便地在VBA中使用Datedif函数:
一、求单元格时间间隔:
A1单元格内容为:2005-9-8B3单元格内容为:2007-4-5
Sub test1()
  MsgBox "间隔" & Application.Evaluate("=Datedif(a1,b3,""y"")") & ""
  MsgBox "间隔" & Application.Evaluate("=Datedif(a1,b3,""m"")") & ""
  MsgBox "间隔" & Application.Evaluate("=Datedif(a1,b3,""d"")") & ""
End Sub
二、求两个TextBox的时间间隔:
TextBox1单元格内容为:2005-9-8TextBox2单元格内容为:2007-4-5
    Sub test2()
        MsgBox "=Datedif(""" & TextBox1.Text & """,""" & TextBox2.Text & """,""y"")"
      MsgBox "间隔" & Application.Evaluate("=Datedif(""" & TextBox1.Text & """,""" & TextBox2.Text & """,""y"")") & ""
  End Sub
三、求两个变量的时间间隔:
    Sub test3()
      Dim time1, time2
      time1 = "2005-9-8"
      time2 = "2007-4-7"
      MsgBox "间隔" & Application.Evaluate("=Datedif(""" & time1 & """,""" & time2 & """,""y"")") & ""

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多