在VBA中如何使用excel中的函數(shù)
這樣Application.WorksheetFunction. “.”后面就能找到在excel中常用的函數(shù)
代碼
Sub tongji() Dim k, l, m As Integer For i = 2 To Sheets.Count k = k + Application.WorksheetFunction.CountA(Sheets(i).Range('a:a')) - 1 l = l + Application.WorksheetFunction.CountA(Sheets(i).Range('f:f')) - 1 m = m + Application.WorksheetFunction.CountA(Sheets(i).Range('f:f')) - 1 Next Sheet1.Range('d26') = k Sheet1.Range('d27') = l Sheet1.Range('d28') = m End Sub
VBA里使用公式 例如 vlookup 如何找不到 就會(huì)報(bào)錯(cuò)
Sub chaxun() Sheet1.Range('d14') = Application.WorksheetFunction.VLookup(Sheet1.Range('d9'), Sheet2.Range('a:h'), 5, 0) End Sub
可以使用 On Error Resume Next 意思是如果這行代碼出錯(cuò)了 那么執(zhí)行下一行代碼
Sub chaxun() Dim i As Integer On Error Resume Next For i = 2 To Sheets.Count Sheet1.Range('d14') = Application.WorksheetFunction.VLookup(Sheet1.Range('d9'), Sheets(i).Range('a:h'), 5, 0) Next End Sub
VBA自身函數(shù)最后附表查看 VBA中文本函數(shù)比較重要
在這里需要注意
sub ss() dim l #如果后面沒(méi)有定義具體的類型,這個(gè)l可以是任意類型 l = inputbox('第幾行分裂') #這時(shí)候你輸入的數(shù)值 但是在 inputbox 接受的是文本 所以 l 在此是文本 l = val(l) #這個(gè)意思是將文本轉(zhuǎn)化成數(shù)值 或者 l= l *1 這樣也可以 if l = isnumeric(l) =false then #在vba中判斷是否是數(shù)值 vab.information.isnumeric exit sub endif end sub
兩個(gè)查找函數(shù) 使用find函數(shù)有個(gè)缺點(diǎn) 如果查找不到 代碼會(huì)崩潰
Sub ss() Range('a1') = Application.WorksheetFunction.Find('@', Range('a2')) Range('a1') = VBA.Strings.InStr(Range('a2'), '@') End Sub
另個(gè)vba 函數(shù) split #split將數(shù)據(jù)分割成數(shù)組 然后從數(shù)組中取值
Sub ss() Range('b2') = Split(Range('a2'), '-')(2) End Sub
在excel中的時(shí)間函數(shù)用date函數(shù)來(lái)實(shí)現(xiàn)
在VBA中則是VBA
range('b2') = vba.DateTime.DateSerial(年,月,日)
聯(lián)系客服