在VBA中使用公式——Excel之VBA(8)
•使用工作表函数
•Application.WorksheetFunction
•.Counta
•.Countif
•.Vlookup
•VBA函数
•文本练习:Instr函数 查找位置
•文本练习:Split函数
•IsNumeri判断是否为数字
•Val 转化为数值
本节案例演示:
1) 自动统计考生人数的问题和考生信息查询
![]() |
Sub chaxun() On Error Resume Next '出现错误继续下一行 Sheets(1).Range("d14").ClearContents '查询前清除姓名 For i = 2 To Sheets.Count '遍历地区 Sheets(1).Range("d14") = Application.WorksheetFunction.VLookup(Sheets(1).Range("d9"), Sheets(i).Range("a:h"), 5, 0) '姓名 Sheets(1).Range("d16") = Application.WorksheetFunction.VLookup(Sheets(1).Range("d9"), Sheets(i).Range("a:h"), 6, 0) '性别 Sheets(1).Range("d18") = Application.WorksheetFunction.VLookup(Sheets(1).Range("d9"), Sheets(i).Range("a:h"), 3, 0) '专业类 Sheets(1).Range("d20") = Application.WorksheetFunction.VLookup(Sheets(1).Range("d9"), Sheets(i).Range("a:h"), 8, 0) '总分 Sheets(1).Range("d22") = Sheets(i).Name '地区 If Sheets(1).Range("d14") <> "" Then '查找到姓名就终止循环· Exit For End If Next End Sub
|
Sub tongji() Dim i, k, x, y As Integer For i = 2 To Sheets.Count k = k + Application.WorksheetFunction.CountA(Sheets(i).Range("a:a")) - 1 y = y + Application.WorksheetFunction.CountIf(Sheets(i).Range("a:h"), "男") x = x + Application.WorksheetFunction.CountIf(Sheets(i).Range("a:h"), "女") Next Sheets(1).Range("d26") = k Sheets(1).Range("d27") = y Sheets(1).Range("d28") = x End Sub
|
2) 判断用户的输入数据
sub chaxunshuju()
......
L = inputbox " 请输入分类的列号"
if vab.information.IsNumeric(l) = false or l < 1 then '若是vba函数,前面可不写,即:if IsNumeric(l) = false then
exit sub
end if
l = val(L) '转化为数字
.........
注:val是value的简写
3)提取产品编号的中信息
Instr()
Split()
![](https://img2020.cnblogs.com/blog/1998608/202011/1998608-20201119110826115-1746549307.png)
![](https://img2020.cnblogs.com/blog/1998608/202011/1998608-20201119111108471-904886254.png)
Sub test() Range("a1") = VBA.Strings.InStr(Range("a2"), "@") Range("b1") = VBA.Strings.InStr(Range("a2"), "-") End Sub
优点:找不到不报错,区别于工作表函数Find
Sub chaifen() Sheets(2).Range("b2") = Split(Sheets(2).Range("a2"), "-")(2) & "年 第" & Split(Sheets(2).Range("a2"), "-")(3) & "周" End Sub
说明:Split函数把内容按切割符,切成数组形式存放
Split(内容,切割符)
附表:常用几类VBA函数
附表:常用VBA变量类型
续: