- 系统环境:Windows 10
 - Excel:2010版本
 
今天讲讲以下几个函数Match,Vlookup,Substitute,Msgbox
函数中使用的标点符号一律是英文状态下的标点符号
Part 1:概要
- Match:匹配所在区域相对位置
 - Vlookup:查找
 - Substitute:替换特定字符
 - Msgbox:弹出窗口
 
Part 2:Match
- Match(待查找值,目标区域,匹配方式)
 
- Match函数返回的是位置值,并且是相对位置
 - 如示例中,目标区域选择范围不同,返回数值不同
 - 为了保证与行号列号一致,目标区域选择是从第一个单元格开始
 - 匹配方式包括-1,0,1
 - 匹配方式为 0,函数返回精确匹配的第一单元格所处位置,其余参考F1帮助
 
Sub test()
    Rem>>定义工作表
    Set sht = ThisWorkbook.Worksheets("举例")
    HangHao1 = Application.Match("复制后区域", sht.Range("A:A"), 0)
    Debug.Print ("HangHao1=" & HangHao1)
    HangHao2 = Application.Match("复制后区域", sht.Range("A2:A10"), 0)
    Debug.Print ("HangHao2=" & HangHao2)
End Sub
注意
- VBA中某些函数前要求必须加上Application
 - 表示该函数为工作表函数,即在Excel工作表中亦可使用
 - 这类函数进行F1帮助时,函数表示方式为WorksheetFunction.函数名称,如图2所示
 - 下文说的Vlookup也属于这种情况
 
图1 Match代码截图
图2 WorksheetFunction
Part 3:VLookup
- Vlookup(待查找值,目标区域,返回单元格所处列相对位置,匹配方式)
 
- 函数返回的是单元格数值
 - 匹配方式包括两种False,True,即精确匹配还是近似匹配
 - Vlookup是Lookup家族中的一员,有兴趣者可进一步了解
 
Sub test()
    Rem>>定义工作表
    Set sht = ThisWorkbook.Worksheets("举例")
    Value1 = Application.VLookup("复制后区域", sht.Range("A:B"), 1, False)
    Debug.Print ("Value1 =" & Value1)
    Value2 = Application.VLookup("复制后区域", sht.Range("A:B"), 2, False)
    Debug.Print ("Value2=" & Value2)
End Sub
图3 VLookup
Part 4:Substitute
- Substitute(目标字符串,拟替换的文本,替换的新文本,替换方式)
 
- 函数返回替换后的文本
 - 替换方式,指定替换第几个匹配项,默认全部替换
 
Sub test()
    Rem>>定义工作表
    S = "在Office的小世界里游啊游,一起不"
    S1 = Application.Substitute(S, "一起不", "Let's go")
    Debug.Print ("S=" & S)
    Debug.Print ("S1=" & S1)
End Sub
图4 Substitute
Part 5:Msgbox
- Msgbox(弹框中显示消息,显示按钮数目及形式,弹框名称)
 
- 函数返回一个弹框窗口
 - 显示按钮数目及形式,可选vbYesNo,vbOKOnly等
 - vbYesNo为VB中的常量,使用数字代替亦可,对应数字为4
 
该函数提供了人机交互功能,不同的选择程序执行不同的操作
Sub test()
    Answer = MsgBox("是否重新计算", vbYesNoCancel, "弹框")
    If Answer = vbYes Then
        MsgBox "点 是 后续操作"
    ElseIf Answer = vbNo Then
        MsgBox "点 否 后续操作"
    ElseIf Answer = vbCancel Then
        MsgBox "点 取消 后续操作"
    End If
End Sub
图5 Msgbox
以上,为本次的介绍内容,下回见。
本文首发于微信公众号:Excel高效办公之VBA。排版和细节略作修改,发于头条
      
 
        
        
 
 