因?yàn)榻^大多數(shù)函數(shù)名是一樣或近似的,VBE環(huán)境下按F1搜索你要用的函數(shù),一般都能找到。
1、VBA肯定能調(diào)用工作表函數(shù),調(diào)用方法也是很簡單,只需在函數(shù)名稱前面加上:Application.WorksheetFunction.函數(shù)名(參數(shù))。
其參數(shù)的使用規(guī)則與在工作表中使用要求完全一致。除了能調(diào)用工作表函數(shù),VBA自身內(nèi)置也有很多函數(shù)可以使用。因?yàn)槭荲BA自身內(nèi)置的函數(shù),所以在使用時(shí),在前面可以加上:VBA.函數(shù)名,也或者直接調(diào)用寫函數(shù)名。經(jīng)常有人可能用不同版本的辦公程序打開有代碼的工作簿,結(jié)果就有可能會(huì)出現(xiàn)如“找不到工程或庫”的提示。怎么辦呢?如果是因?yàn)閂BA自身內(nèi)置函數(shù)的原因,則可以在前加上“VBA.”就行了。
當(dāng)然,也可在VBE界面中菜單【工具】->【引用】打開引用對話框,查找?guī)Ч错?xiàng)中含“丟失…”、“找不到…”、“MISSING…”的條目,并取消勾選,確定,基本就可以了。現(xiàn)在總結(jié)下常用的VBA自身內(nèi)置函數(shù)如下(中間文字過長,或以跳轉(zhuǎn)到最下面看看“其他常用函數(shù)”,很有用的哦。):
2、測試類函數(shù):
IsNumeric(x)-是否為數(shù)字,返回Boolean結(jié)果。
IsDate(x)-是否是日期,返回Boolean結(jié)果。
IsEmpty(x)-是否為Empty,返回Boolean結(jié)果。
IsArray(x)-指出變量是否為一個(gè)數(shù)組。
IsError(expression)-指出表達(dá)式是否為一個(gè)錯(cuò)誤值。
IsNull(expression)-指出表達(dá)式是否不包含任何有效數(shù)據(jù)(Null)。
IsObject(identifier)-指出標(biāo)識(shí)符是否表示對象變量。
3、數(shù)學(xué)函數(shù):
Sin(X)、Cos(X)、Tan(X)、Atan(x)-三角函數(shù),單位為弧度。
Log(x)、Exp(x)-返回x的自然對數(shù),指數(shù)。
Abs(x)-返回x的絕對值。
Int(number)、Fix(number)-都返回參數(shù)的整數(shù)部分,區(qū)別:Int將-8.4轉(zhuǎn)換成-9,而Fix將-8.4轉(zhuǎn)換成-8。
Sgn(number)-返回一個(gè)Variant(Integer),指出參數(shù)的正負(fù)號(hào)。
Sqr(number)-返回一個(gè)Double,指定參數(shù)的平方根。VarType(varname)-返回一個(gè)Integer,指出變量的子類型。
Rnd(x)-返回0-1之間的單精度數(shù)據(jù),x為隨機(jī)種子。
Round(x,y)-把x四舍五入得到保留y位小數(shù)的值。
4、字符串函數(shù):
Trim(string)、Ltrim(string)、Rtrim(string)-去掉string左右兩端空白,左邊的空白,右邊的空白。
Len(string)-計(jì)算string長度
Replace(expression,find,replace)-替換字符串。
Left(string,x)、Right(string,x)、Mid(string,start,x)-取string左/右/指定段x個(gè)字符組成的字符串Ucase(string)、
Lcase(string)-轉(zhuǎn)換字符串為大、小寫Space(x)-返回x個(gè)空白的字符串
Asc(string)-返回一個(gè)integer,代表字符串中首字母的字符代碼
Chr(charcode)-返回string,其中包含有與指定的字符代碼相關(guān)的字符
InStr()-返回一個(gè)字符串在另外一個(gè)字符串中的位置,返回值為Variant(Long)型。
5、轉(zhuǎn)換函數(shù):
CBool(expression)-轉(zhuǎn)換為Boolean型
CByte(expression)-轉(zhuǎn)換為Byte型
CCur(expression)-轉(zhuǎn)換為Currency型
CDate(expression)-轉(zhuǎn)換為Date型
CDbl(expression)-轉(zhuǎn)換為Double型
CDec(expression)-轉(zhuǎn)換為Decemal型
CInt(expression)-轉(zhuǎn)換為Integer型
CLng(expression)-轉(zhuǎn)換為Long型
CSng(expression)-轉(zhuǎn)換為Single型
CStr(expression)-轉(zhuǎn)換為String型
CVar(expression)-轉(zhuǎn)換為Variant型
Val(string)-轉(zhuǎn)換為數(shù)據(jù)型
Str(number)-轉(zhuǎn)換為String
5、時(shí)間函數(shù):
Now、Date、Time-返回一個(gè)Variant(Date),根據(jù)計(jì)算機(jī)系統(tǒng)設(shè)置的日期和時(shí)間來指定日期和時(shí)間。
Timer-返回一個(gè)Single,代表從午夜開始到現(xiàn)在經(jīng)過的秒數(shù)。
TimeSerial(hour,minute,second)-返回一個(gè)Variant(Date),包含具有具體時(shí)、分、秒的時(shí)間。
DateDiff(interval,date1,date2[,firstdayofweek[,firstweekofyear]])-返回Variant(Long)的值,表示兩個(gè)指定日期間的時(shí)間間隔數(shù)目。
Second(time)-返回一個(gè)Variant(Integer),其值為0到59之間的整數(shù),表示一分鐘之中的某個(gè)秒。
Minute(time)-返回一個(gè)Variant(Integer),其值為0到59之間的整數(shù),表示一小時(shí)中的某分鐘。
Hour(time)-返回一個(gè)Variant(Integer),其值為0到23之間的整數(shù),表示一天之中的某一鐘點(diǎn)。
Day(date)-返回一個(gè)Variant(Integer),其值為1到31之間的整數(shù),表示一個(gè)月中的某一日
Month(date)-返回一個(gè)Variant(Integer),其值為1到12之間的整數(shù),表示一年中的某月。
Year(date)-返回Variant(Integer),包含表示年份的整數(shù)。
Weekday(date,[firstdayofweek])-返回一個(gè)Variant(Integer),包含一個(gè)整數(shù),代表某個(gè)日期是星期幾。
其它常用函數(shù):
Shell-運(yùn)行一個(gè)可執(zhí)行的程序。
InputBox-這個(gè)太熟悉了,簡單輸入對話框。這個(gè)需要注意與Application.InputBox(更強(qiáng)大,內(nèi)置容錯(cuò)處理,選擇取消后返回false)區(qū)分,而這個(gè)函數(shù)不含有容錯(cuò)處理,而且選擇取消后返回空串(零個(gè)字節(jié)的字符串)。
MsgBox-這個(gè)更不用說了,簡單信息顯示對話框,其實(shí)也是一種簡單的輸入手段。
Join-連接數(shù)組成字符串。
Split-拆分字符串成數(shù)組。
RGB-返回指定R、G、B分量的顏色數(shù)值。
Dir-查找文件或者文件夾。
IIF(expression,truePart,falsePart)-IF語句的“簡化版本”(比喻,當(dāng)然并不一樣);expression為true的話返回truePart,否則返回falseParth。Choose(index,choice1,...choiceN)-選擇指定Index的表達(dá)式,Index可選范圍是1到選項(xiàng)的總數(shù)。
Switch(exp1,value1,exp2,value2,...expN,valueN)-從左至右計(jì)算每個(gè)exp的值,返回首先為true的表達(dá)式對應(yīng)的value部分。如果所有的exp值都不為true,則返回Null。注意雖然只返回一個(gè)部分,但是這里所有的表達(dá)式exp1到expN都是要被計(jì)算的,實(shí)際使用中要注意這個(gè)副作用。