在VBA中如何使用excel中的函数 这样Application.WorksheetFunction. “.”后面就能找到在excel中常用的函数 代码 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 如何找不到 就会报错 Sub chaxun() Sheet1.Range('d14') = Application.WorksheetFunction.VLookup(Sheet1.Range('d9'), Sheet2.Range('a:h'), 5, 0) End Sub 可以使用 On Error Resume Next 意思是如果这行代码出错了 那么执行下一行代码 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自身函数最后附表查看 VBA中文本函数比较重要 在这里需要注意 sub ss() dim l #如果后面没有定义具体的类型,这个l可以是任意类型 l = inputbox('第几行分裂') #这时候你输入的数值 但是在 inputbox 接受的是文本 所以 l 在此是文本 l = val(l) #这个意思是将文本转化成数值 或者 l= l *1 这样也可以 if l = isnumeric(l) =false then #在vba中判断是否是数值 vab.information.isnumeric exit sub endif end sub 两个查找函数 使用find函数有个缺点 如果查找不到 代码会崩溃 Sub ss() Range('a1') = Application.WorksheetFunction.Find('@', Range('a2')) Range('a1') = VBA.Strings.InStr(Range('a2'), '@') End Sub 另个vba 函数 split #split将数据分割成数组 然后从数组中取值 Sub ss() Range('b2') = Split(Range('a2'), '-')(2) End Sub 在excel中的时间函数用date函数来实现 在VBA中则是VBA range('b2') = vba.DateTime.DateSerial(年,月,日)
|
|
来自: Excel实用知识 > 《VBA与EXCEL》