【原创】VBA学习笔记(4)VBA函数 和 worksheetfunction工作表函数
生活随笔
收集整理的這篇文章主要介紹了
【原创】VBA学习笔记(4)VBA函数 和 worksheetfunction工作表函数
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一?EXCEL和VBA的3種函數(shù)
1.1 EXCEL和VBA
- VBA是寄生在EXCEL里的
- VBA有自己的原生函數(shù)? ?VBA.
- VBA的Application===EXCEL,本身各有很多各種函數(shù)。
?
1.2 VBA涉及的函數(shù)種類
1.2.1 第1類: VBA函數(shù)
- VBA的函數(shù): VBA內(nèi)置函數(shù),用戶自定義函數(shù):?
- 寫法可以省略vba.? ? ? ? ? ? ? ? ? ? ?
- VBA.trim()
- trim()
?
1.2.2 第2類,Application下的函數(shù)
- EXCEL對象(Application對象) 函數(shù): 內(nèi)置工作表函數(shù),內(nèi)置數(shù)組公式:? ?
- 基本上Application后面可以跟所有的Excel函數(shù),而application.workfunction則不能。
- 寫法只有1種
- Application.
- 如application.match
?
1.2.3 第3大類,Application.worksheetfunction ,Application下工作表函數(shù)的再封裝
- Application.worksheetfunction.? 只有一部分函數(shù)可用
- 具體寫法,可以省略application,不能省略 worksheetfunction.
- Application.worksheetfunction.?
- worksheetfunction.
?
1.2.4 三者的關(guān)系
?
1.2.5 差別舉例
下面2個函數(shù),用起來是不一樣的
Sub test_ponyma1()'這2個函數(shù)居然不一樣,待查 Debug.Print Application.Match(1, Range("a1:a10")) 'Debug.Print WorksheetFunction.Match(1, Range("a1:a10"))End Sub?
1.2.6 其他函數(shù):如EXCEL表用的公式,自定義函數(shù)等等
- 其他函數(shù)1: EXCEL公式
- EXCEL工作表函數(shù):工作表函數(shù),數(shù)組公式等
- 只能在EXCEL,公式時用
?
- 其他函數(shù)2:自定義函數(shù)
- 自己寫的,可以用在VBA里,還可以用在EXCEL里直接使用 ,如在EXCEL里輸入 = func1()
?
二 幾種函數(shù)語法和使用范圍
2.1 VBA函數(shù)和 worksheetfunction?同名函數(shù),實際是完全不同的函數(shù),一般功能不同
比如
- vba.trim()? ?或 trim()? ? ? ? ? ? 只去掉頭尾的空格
- Application.trim()? ? ? ? ? ? ? ? 會去掉字符串中間的空格,只保留1個
?
2.2 VBA函數(shù)寫法
- Vba函數(shù)語法
- 寫法1:trim()
- 寫法2:VBA.trim()
- 例子
- 如 Cells(1,1)=round(range(“c1”),0)
?
2.3 VBA函數(shù)特點?
- 不能直接修改EXCEL單元格里的值?
?
2.4 封裝層數(shù)越少,效率越高,?更應(yīng)該用 Application.
參考資料:https://zhidao.baidu.com/question/1496170563121388179.html
1層封裝?application.
- application.trim()
- 運行速度更快
- 而且application. 函數(shù)比 worksheetfunction 封裝的內(nèi)置函數(shù)更多
- 這么說,更應(yīng)該用??application.trim()
?
2層封裝(中間包了worksheet層)
- Application.worksheetfunction.trim()
- worksheetfunction.trim()
- 多一個封裝,那么運行所耗的時間也要長一些。
?
2.5 工作表函數(shù)特點和使用范圍
- worksheetfunction 只能針對1個單元格?
- worksheetfunction 能用數(shù)組公式嗎?這個應(yīng)該是針對多單元格的
?
2.6 實測
- msgbox(Application)
- application.worksheetfunction.counta(range("a:a"))
- application.sum(range("a:a"))
- application.sum([a;a])
- application.sum(indirect("a1"))
錯誤寫法
- application.worksheetfunction.counta(a:a)
- application.worksheetfunction.counta("a:a")
- application.sum(a;a)
- application.sum("a;a")
- application.sum("a1")
?
三 資料:幾類函數(shù)大全
3.1 VBA函數(shù)
這個帖子總結(jié)了很多VBA函數(shù)
https://blog.csdn.net/cactusz/article/details/74561682
?
3.2 工作表函數(shù)
http://blog.sina.com.cn/s/blog_4084a6160101nra0.html
?
總結(jié)
以上是生活随笔為你收集整理的【原创】VBA学习笔记(4)VBA函数 和 worksheetfunction工作表函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: React开发(197):文件名错误
- 下一篇: React开发(216):ant ded