【精选】在VBA中使用Excel工作表公式.pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【精选】在VBA中使用Excel工作表公式

在VBA 中使用Excel 工作表公式 在VBA 中可以利用Excel 工作表函数的强大功能,将VBA 和Excel 公式与函数联合,使得应 用程序更为强大和灵活。 使用WorksheetFunction 对象 WorksheetFunction 对象的成员就是Excel 内置函数,因此,利用该对象可以直接在VBA 中使 用这些函数。 例如,求单元格区域 A1:A5 的数值之和,假如将该区域命名为“myRange”,则可以在VBA 中使用下列代码: Application.WorksheetFunction.Sum(Range(myRange)) Application.WorksheetFunction.Sum(Range(A1:A5)) 注意,在VBA 中当输入WorksheetFunction 后再输入一个句点时,就会显示所有的函数列表, 如下图1 所示。 图1:显示VBA 可用工作表函数列表 Evaluate 方法 使用Worksheet 对象或Application 对象的Evaluate 函数。该函数接受字符串参数,返回引用 的公式的值(字符串为公式)或者引用的单元格区域(字符串代表单元格或单元格区域, A1 样式)。其语法为: 表达式.Evaluate(Name) 将Excel 名称转换为对象或值,其中: 表达式 对于Application ,表达式可选;对于Chart、DialogSheet 和Worksheet ,表达式必需。 Name 必需的字符串。满足Excel 命名规范的对象的名称,包括: (1)A1 样式引用。可以以A1 样式的引用方式使用任意对单个单元格的引用,引用都 被考虑是绝对引用。 (2 )单元格区域。可以使用区域、交叉和联合操作符(冒号、空格和逗号)引用单元 格区域。 (3 )定义的名称。 (4 )外部引用。可以使用!操作符引用另一工作簿中的单元格或定义的名称。例如 Evaluate([BOOK1.XLS]Sheet1!A1)。 (5 )Chart 对象。可以指定任意图表对象名称,例如“图例”、“绘图区”或“系列1”, 来访问该对象的属性和方法。例如,Charts(Chart1).Evaluate(Legend).Font.Name 返回图例 中使用的字体名。 在VBA 中使用Excel 工作表公式 也可以使用方括号代替evaluate 函数,使用方括号(例如,[A1:C5])与调用带字符串参数的 Evaluate 方法是相同的。例如,下面的代码等价: [a1].Value = 25 Evaluate(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 方法的的优势是参数是字符串,因此可以在 代码中构造字符串或使用变量。 例如,下面的代码将Sheet1 中单元格A1 加粗: Worksheets(Sheet1).Activate boldCell = A1 Application.Evaluate(boldCell).Font.Bold = True 更简短一些,如设置当前工作表中单元格B1 为加粗: [B1].Font.Bold = True 下面的代码返回当前工作表中单元格A1 的值: Evaluate(A1) 下面的代码返回当前工作表中单元格区域A1:A5 的值之和: Evaluate(SUM(A1:A5)) 又例如: 图2:示例工作表 For i = 2 To 10 Debug.Print Evaluate(A i), Evaluate(COUNTIF(A1:A (i - 1) ,A i )) Next i 将打印出A1:A10 区域内,某单元格的

文档评论(0)

vshoulrengb3 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档