在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()

 
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变量类型

 

 

 

 续:

 

 

 
posted @ 2020-11-19 09:46  云谷の风  阅读(464)  评论(0编辑  收藏  举报