领先的免费Web技术教程,涵盖HTML到ASP.NET

网站首页 > 知识剖析 正文

VBA与Excel入门系列-07-常用函数下篇-查找/替换/弹窗

nixiaole 2024-12-27 15:57:24 知识剖析 12 ℃
  • 系统环境:Windows 10
  • Excel:2010版本


今天讲讲以下几个函数Match,Vlookup,Substitute,Msgbox
函数中使用的标点符号一律是英文状态下的标点符号



Part 1:概要

  • Match匹配所在区域相对位置
  • Vlookup查找
  • Substitute替换特定字符
  • Msgbox弹出窗口



Part 2:Match

  • Match(待查找值目标区域匹配方式)
  1. Match函数返回的是位置值,并且是相对位置
  2. 如示例中,目标区域选择范围不同,返回数值不同
  3. 为了保证与行号列号一致,目标区域选择是从第一个单元格开始
  4. 匹配方式包括-1,0,1
  5. 匹配方式为 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也属于这种情况




Part 3:VLookup

  • Vlookup(待查找值目标区域返回单元格所处列相对位置匹配方式)
  1. 函数返回的是单元格数值
  2. 匹配方式包括两种False,True,即精确匹配还是近似匹配
  3. VlookupLookup家族中的一员,有兴趣者可进一步了解
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





Part 4:Substitute

  • Substitute(目标字符串拟替换的文本替换的新文本替换方式)
  1. 函数返回替换后的文本
  2. 替换方式,指定替换第几个匹配项,默认全部替换
Sub test()
    Rem>>定义工作表
    S = "在Office的小世界里游啊游,一起不"
    S1 = Application.Substitute(S, "一起不", "Let's go")
    Debug.Print ("S=" & S)
    Debug.Print ("S1=" & S1)
End Sub





Part 5:Msgbox

  • Msgbox(弹框中显示消息显示按钮数目及形式弹框名称)
  1. 函数返回一个弹框窗口
  2. 显示按钮数目及形式,可选vbYesNovbOKOnly
  3. vbYesNoVB中的常量,使用数字代替亦可,对应数字为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




以上,为本次的介绍内容,下回见。

本文首发于微信公众号:Excel高效办公之VBA。排版和细节略作修改,发于头条

最近发表
标签列表