VBA InStr函数

首先标准语法先上为敬


InStr 函数

    • 函数 (Visual Basic for Applications)
  • 返回一个 Variant (Long) 值,指定一个字符串在另一个字符串中首次出现的位置。

    语法

    InStr([ start ], string1, string2, [ compare ])

    InStr 函数语法有以下参数:

    Part 说明
    start 可选。 设置每次搜索的起始位置的数字表达式。 如果忽略,则搜索从第一个字符位置开始。 如果 start 包含 Null,则出现错误。 如果指定了 compare,则 start 参数是必需的。
    string1 必需。 要搜索的字符串表达式。
    string2 必需。 搜索到的字符串表达式。
    compare 可选。 指定字符串比较的类型。 如果 compareNull,则将发生错误。 如果省略 compare,则 Option Compare 设置将决定比较的类型。 指定有效的 LCID (LocaleID) 以在比较中使用区域设置特定规则。

    设置

    compare 参数设置如下。

    常量 说明
    vbUseCompareOption -1 使用 Option Compare 语句的设置执行比较。
    vbBinaryCompare 0 执行二进制比较。
    vbTextCompare 1 执行文本比较。
    vbDatabaseCompare 2 仅用于 Microsoft Access。 根据数据库中的信息执行比较。

    返回值

    If InStr 返回
    string1 是零长度 0
    string1Null NULL
    string2 是零长度 start
    string2Null NULL
    未找到 string2 0
    string1 中找到 string2 找到匹配的位置
    start > string2 0

简单示例

Sub test()
Dim str1, str2
str1 = "aaAbbB"
str2 = "B"
Debug.Print VBA.InStr(1, str1, str2, vbBinaryCompare) 'vbBinaryCompare=0 二进制比较(区分大小写)
Debug.Print VBA.InStr(1, str1, str2, vbTextCompare) 'vbTextCompare=1 文本比较(不区分大小写)
Debug.Print VBA.InStr(str1, str2)  '默认是vbBinaryCompare=0,区分大小写的
End Sub

instr有时候比find好用。

你可能感兴趣的:(VBA InStr函数)