VBA-在VBA中使用公式
在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(年,月,日)




浙公网安备 33010602011771号