Excel学习笔记003-001:如何在VBA程序中调用Excel函数进行运算
按说Excel函数应该只在工作表中应用,好像VBA不可以用的,但实际上许多Excel函数具有很高的效率,如果能把两者结合起来的话,肯定是事半功倍!但说实在话,开始时我总是想着如何从VBA的角度来解决问题,当初Excel函数这块掌握不较少,导致现在一想才发现自己真的很浅薄!不过回过头来想,如果可以掌握如何在VBA程序中调用Excel函数的话,那事情不是更好吗!!!
所以今天要解决的问题是:如何在VBA程序中调用Excel函数?终极目标就是把Excel工作表中的的所有函数都放到VBA中进行调用,完全掌握它们的种种用法.
Sub 调用clean函数()
'如何调用clean(text)函数 用途:删除指定文本中所有非打印符号,保证数据的有效性.
Range("B1").Value = Application.WorksheetFunction.Clean("@diahdfias")
Range("B2").Value = "'" & Application.WorksheetFunction.Clean(Range("A1").Value)
'文本是要从中删除不能打印字符的任何工作表信息,注意第2行命令,clean中的为文本格式,如果在工作表函数中应为如clan(A1),表示在把A1单元格中非打印字符删掉,但如在VBA中调用,就不能这样写,
'必须写成range("A1").value的形式才可以.如果也写成range(A1)的形式,那么将不会返回任何数据!!
End Sub
Sub 关于sum函数的调用举例()
Application.DisplayAlerts = False
Worksheets("sheet1").Activate
Dim totalR As Integer
Dim mycell As Range
totalR = Range("C65536").End(xlUp).Row
Dim i As Integer
For i = 2 To totalR
Set mycell = Range(Cells(i, 4), Cells(i, 11)) '先设置好mycell的单元格区域,正好可以在sum中使用,不然的话,下一语句中根本无法使用,并且这种种法
'还可以突破sum函数只能对30个数相加的限制.
Range(Cells(i, 12), Cells(i, 12)).Value = Application.WorksheetFunction.Sum(mycell)
Next i
End Sub
关于Sum函数的效果截图如下图所示: