在Excel中使用函数公式,有两种使用方法,一是直接通过鼠标或手工输入的方法使用,称为直接使用;二是通过VBA间接调用。称为间接法。
通过VBA调用Excel中的函数,具有相当的灵活性,当我们在处理未知区域即不确定有多少行和多少列的时候,如果使用VBA调用函数,那么,将是一种稍有智能性的数据处理方法。
下面,给大家详细介绍,在EXCEL中,如何通过VBA调用函数并给函数指明参数。
①种调用方法
Worksheets(1).Range("E6") = WorksheetFunction.Median(Range("A1:B4"))
这种调用形式,函数的参数是单元格地址区域,属于普通型,但数据区域的定义难于确定。
②种调用方法
Worksheets("sheet1").Range("D6") = Application.Min(Range("A1:B4"))
这种调用形式,函数参数的数据区域及工作表名称,属于普通型,灵活性不够。
按条件合并多个excel单元格内容到同一单元格的自定义函数
Excel中的CONCATENATE函数可以将多个文本字符串联接成一个文本字符串,但有时需要按指定条件合并某些单元格的内容到一个单元格,这时CONCATENATE函数无法实现,而使用下面的自定义函数就十分方便了。如图所示,需要在F2单元格中将“调资额”为“190”的&ld
③种调用方法
Worksheets(1).Range("C6") = Application.Max(Worksheets("Sheet1").Range("A1:B4"))
此类调用方法,直接指明工作表名称及数据范围,但还是缺乏灵活性。
④种调用方法
Worksheets(1).Range(Cells(6, 2), Cells(6, 2)) = Application.WorksheetFunction.Average(Worksheets(1).Range(Cells(1, 1), Cells(4, 2)))
和大家直接说吧,这种调用方法,是最标准、最灵活、最具有代表性、最完整、出错率最低的一种调用方法。
为什么这样说呢,因为一个工作薄包含多张工作表,只要在调用中,首先指明工作表名称再给出数据范围,这样,就不会和其它工作表混淆了,另外,我们对表的名称和数据区域的引用,完全都是通过可构造性的行列序号来标记的,这种方法是相当的灵活。
另外,调用函数的时候,也是逐渐引用。首先是Application引用,再次是WorksheetFunction引用,最后长到函数名称,如:Application.WorksheetFunction.Average,这样就可以保证逻辑性的完整,可以避免错误的发生。
请注意VBA只能调用EXCEL绝大多数的函数,而不是所有函数。不过呢,这已经足够使用了,足够使用了。
excel VBA批量更改数据透视表数据字段值汇总方式
如果需要更改Excel数据透视表数值区域中字段的值汇总方式,在字段较多的情况下,手动逐一更改显得有些繁琐。用下面的VBA代码可快速批量更改全部数据字段的值汇总方式。例如要将当前工作表中第一个数据透视表的所有数据字段值汇总方式改为“求和”,方法如下: 按Alt F11,打开VBA编辑器,在代码窗