zoukankan      html  css  js  c++  java
  • 在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变量类型

     

     续:

     
  • 相关阅读:
    通信原理
    java实现聊天室的简单实现
    计算机网络笔记——第四章、网络层
    泛型高级之通配符
    看文档总结
    HashSet源码解析
    HashTable源码解析
    计算机网络笔记——第三章、数据链路层
    Collection集合的功能
    第六章 应用层
  • 原文地址:https://www.cnblogs.com/zeon/p/14003639.html
Copyright © 2011-2022 走看看