InStr 函数

返回一个 Variant (Long) 值,指定一个字符串在另一个字符串中首次出现的位置。

注意

有兴趣开发跨多个平台扩展 Office 体验的解决方案吗? 查看新的 Office 外接程序模型。 与VSTO外接程序和解决方案相比,Office外接程序占用的空间较小,您可以使用几乎任何Web编程技术(例如HTML5,JavaScript,CSS3和XML)来构建它们。

语法

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

注释

InStrB 函数适用于包含在字符串中的字节数据。 InStrB 返回某字符串在其他字符串中首次出现的字节位置,而不返回其字符位置。

示例

本示例使用 InStr 函数来返回某字符串在其他字符串中首次出现的位置。

Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP"    ' String to search in.
SearchChar = "P"    ' Search for "P".

' A textual comparison starting at position 4. Returns 6.
MyPos = Instr(4, SearchString, SearchChar, 1)    

' A binary comparison starting at position 1. Returns 9.
MyPos = Instr(1, SearchString, SearchChar, 0)

' Comparison is binary by default (last argument is omitted).
MyPos = Instr(SearchString, SearchChar)    ' Returns 9.

MyPos = Instr(1, SearchString, "W")    ' Returns 0.

另请参阅

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。