- 系统环境: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。排版和细节略作修改,发于头条