求教EXCEL VBA中,InStr的详细用法。 vba中instr函数怎么用?

\u6c42EXCEL VBA instr\u51fd\u6570\u7684\u8be6\u7ec6\u7528\u6cd5

Instr\u51fd\u6570
\u4e00\u3001\u9898\u76ee\uff1a
\u8981\u6c42\u7f16\u5199\u4e00\u6bb5\u4ee3\u7801\uff0c\u8fd0\u7528Instr\u51fd\u6570\uff0c\u5728\u4e00\u5b57\u7b26\u4e32\u4e2d\u67e5\u627e\u53e6\u4e00\u5b57\u7b26\u4e32\u5e76\u8fd4\u56de\u7ed3\u679c\u3002
\u4e8c\u3001\u4ee3\u7801\uff1a
Sub \u793a\u4f8b_1_18()
Dim bssString, yczChar, wz
bssString ="ABpAApCDPBBP"
yczChar = "P"

MsgBox "bssString = "" ABpAApCDPBBP """ & Chr(10) & _
"yczChar= ""P"" \u65f6\uff1a " & Chr(10) & Chr(10) & _
"InStr(4, bssString, yczChar, 1) \u8fd4\u56de\u503c\u4e3a " & _
InStr(4, bssString, yczChar, 1)
wz = Instr(1, bssString, yczChar, 0)
wz = Instr(bssString,yczChar) ' \u8fd4\u56de 9\u3002
wz = Instr(1, bssString, "W") ' \u8fd4\u56de 0\u3002
End Sub
\u4e09\u3001\u4ee3\u7801\u8be6\u89e3
1\u3001Sub \u793a\u4f8b_1_18()\uff1a\u5b8f\u7a0b\u5e8f\u7684\u5f00\u59cb\u8bed\u53e5\u3002\u5b8f\u540d\u4e3a\u793a\u4f8b_1_18\u3002
2\u3001Dim bssString, yczChar, wz \uff1a\u53d8\u91cfbssString\u3001yczChar\u548cws\u58f0\u660e\u4e3a\u53ef\u53d8\u578b\u53d8\u91cf\u3002
3\u3001bssString ="ABpAApCDXPBBP" \uff1a \u628a\u88ab\u641c\u7d22\u7684\u5b57\u7b26\u4e32\u8d4b\u7ed9\u53d8\u91cfbssString\u3002
4\u3001yczChar = "P" \uff1a \u628a\u8981\u67e5\u627e\u7684\u5b57\u7b26P\u8d4b\u7ed9\u53d8\u91cfyczChar\u3002
5\u3001MsgBox "bssString = "" ABpAApCDPBBP """ & Chr(10) & _
"yczChar= ""P"" \u65f6\uff1a " & Chr(10) & Chr(10) & _
"InStr(4, bssString, yczChar, 1) \u8fd4\u56de\u503c\u4e3a " & _
InStr(4, bssString, yczChar, 1)\uff1a \u7528\u6d88\u606f\u6846\u663e\u793a\u4ece\u7b2c\u56db\u4e2a\u5b57\u7b26\u5f00\u59cb\uff0c\u4ee5\u6587\u672c\u6bd4\u8f83\u7684\u65b9\u5f0f\u627e\u5b57\u7b26P\uff0c\u8fd4\u56de\u503c\u4e3a 6\uff08\u5c0f\u5199 p\u7684\u4f4d\u7f6e\uff09\u3002\u5c0f\u5199 p \u548c\u5927\u5199 P \u5728\u6587\u672c\u6bd4\u8f83\u4e0b\u662f\u4e00\u6837\u7684\uff0c\u4e5f\u5c31\u662f\u5f53\u51fd\u6570\u7684\u6700\u540e\u4e00\u4e2a\u53c2\u6570\u4e3a1\u65f6\uff0c\u67e5\u627e\u4e0d\u5206\u5927\u5c0f\u5199\u3002\u628a\u8981\u67e5\u627e\u7684\u5b57\u7b26P\u7684\u4f4d\u7f6e\u8d4b\u7ed9\u53d8\u91cfyczChar\u3002\u5f0f\u4e2dChr(10)\u662f\u6362\u884c\u7b26\u3002
6\u3001wz = Instr(1, bssString, yczChar, 0) \uff1a\u4ece\u7b2c\u4e00\u4e2a\u5b57\u7b26\u5f00\u59cb\uff0c\u4ee5\u4e8c\u8fdb\u5236\u6bd4\u8f83\u7684\u65b9\u5f0f\u67e5\u627e\uff0c\u8fd4\u56de\u503c\u4e3a 9\uff08\u5927\u5199 P\u7684\u4f4d\u7f6e\uff09\u3002\u5c0f\u5199 p \u548c\u5927\u5199 P \u5728\u4e8c\u8fdb\u5236\u6bd4\u8f83\u4e0b\u662f\u4e0d\u4e00\u6837\u7684\uff0c\u4e5f\u5c31\u662f\u5f53\u51fd\u6570\u7684\u6700\u540e\u4e00\u4e2a\u53c2\u6570\u4e3a0\u65f6\uff0c\u67e5\u627e\u5206\u5927\u5c0f\u5199\u3002\u628a\u67e5\u627e\u5230\u7684\u5b57\u7b26P\u7684\u4f4d\u7f6e\u8d4b\u7ed9\u53d8\u91cfwz\u3002
7\u3001wz = Instr(bssString, yczChar) \uff1a\u4e0a\u4e00\u53e5\u4e5f\u53ef\u5199\u6210\u8fd9\u6837\u7684\uff0c\u56e0\u4e3a\u7f3a\u7701\u7684\u6bd4\u5bf9\u65b9\u5f0f\u4e3a\u4e8c\u8fdb\u5236\u6bd4\u8f83\uff08\u6700\u540e\u4e00\u4e2a\u53c2\u6570\u53ef\u7701\u7565\uff09\u3002\u7b2c\u4e00\u4e2a\u53c2\u6570\u7701\u7565\u9ed8\u8ba4\u4ece\u7b2c\u4e00\u4e2a\u5b57\u7b26\u5f00\u59cb\u67e5\u627e\u3002\u8fd4\u56de\u503c\u4e3a 9\u3002
8\u3001wz = Instr(1,bssString, \u201dW\u201d) \uff1a\u5728\u88ab\u641c\u7d22\u7684\u5b57\u7b26\u4e32\u4e2d\u67e5\u627e\u5b57\u7b26W\uff0c\u7531\u4e8e\u6ca1\u627e\u5230\u8fd4\u56de\u503c\u4e3a0\u3002

InStr \u51fd\u6570
\u8fd4\u56de Variant (Long)\uff0c\u6307\u5b9a\u4e00\u5b57\u7b26\u4e32\u5728\u53e6\u4e00\u5b57\u7b26\u4e32\u4e2d\u6700\u5148\u51fa\u73b0\u7684\u4f4d\u7f6e\u3002

InStr([start, ]string1, string2[, compare])
InStr \u51fd\u6570\u7684\u8bed\u6cd5\u5177\u6709\u4e0b\u9762\u7684\u53c2\u6570\uff1a
start \u53ef\u9009\u53c2\u6570\u3002\u4e3a\u6570\u503c\u8868\u8fbe\u5f0f\uff0c\u8bbe\u7f6e\u6bcf\u6b21\u641c\u7d22\u7684\u8d77\u70b9\u3002\u5982\u679c\u7701\u7565\uff0c\u5c06\u4ece\u7b2c\u4e00\u4e2a\u5b57\u7b26\u7684\u4f4d\u7f6e\u5f00\u59cb\u3002\u5982\u679c\u6307\u5b9a\u4e86 compare \u53c2\u6570\uff0c\u5219\u4e00\u5b9a\u8981\u6709 start \u53c2\u6570\u3002
string1 \u5fc5\u8981\u53c2\u6570\u3002\u63a5\u53d7\u641c\u7d22\u7684\u5b57\u7b26\u4e32\u8868\u8fbe\u5f0f\u3002
string2 \u5fc5\u8981\u53c2\u6570\u3002\u88ab\u641c\u7d22\u7684\u5b57\u7b26\u4e32\u8868\u8fbe\u5f0f\u3002
Compare\u53ef\u9009\u53c2\u6570\u3002\u6307\u5b9a\u5b57\u7b26\u4e32\u6bd4\u8f83\u3002\u5982\u679c\u7701\u7565 compare\uff0cOption Compare \u7684\u8bbe\u7f6e\u5c06\u51b3\u5b9a\u6bd4\u8f83\u7684\u7c7b\u578b\u3002
compare \u53c2\u6570\u8bbe\u7f6e\u4e3a\uff1a
\u5e38\u6570 \u503c \u63cf\u8ff0
vbUseCompareOption -1 \u4f7f\u7528Option Compare \u8bed\u53e5\u8bbe\u7f6e\u6267\u884c\u4e00\u4e2a\u6bd4\u8f83\u3002
vbBinaryCompare 0 \u6267\u884c\u4e00\u4e2a\u4e8c\u8fdb\u5236\u6bd4\u8f83\u3002
vbTextCompare 1 \u6267\u884c\u4e00\u4e2a\u6309\u7167\u539f\u6587\u7684\u6bd4\u8f83\u3002
vbDatabaseCompare 2 \u4ec5\u9002\u7528\u4e8eMicrosoft Access\uff0c\u6267\u884c\u4e00\u4e2a\u57fa\u4e8e\u6570\u636e\u5e93\u4e2d\u4fe1\u606f\u7684\u6bd4\u8f83\u3002

vba\u4e2d\u201c_\u201d\u8868\u793a\u4e0b\u5212\u7ebf\uff1ba = InStr(C, "_") \u5e94\u8be5\u4e3a\u201c_\u201d\u5728C\u4e2d\u7684\u4f4d\u7f6e\u3002

Instr函数
一、题目:
要求编写一段代码,运用Instr函数,在一字符串中查找另一字符串并返回结果。
二、代码:
Sub 示例_1_18()
Dim bssString, yczChar, wz
bssString ="ABpAApCDPBBP"
yczChar = "P"

MsgBox "bssString = "" ABpAApCDPBBP """ & Chr(10) & _
"yczChar= ""P"" 时: " & Chr(10) & Chr(10) & _
"InStr(4, bssString, yczChar, 1) 返回值为 " & _
InStr(4, bssString, yczChar, 1)
wz = Instr(1, bssString, yczChar, 0)
wz = Instr(bssString,yczChar) ' 返回 9。
wz = Instr(1, bssString, "W") ' 返回 0。
End Sub
三、代码详解
1、Sub 示例_1_18():宏程序的开始语句。宏名为示例_1_18。
2、Dim bssString, yczChar, wz :变量bssString、yczChar和ws声明为可变型变量。
3、bssString ="ABpAApCDXPBBP" : 把被搜索的字符串赋给变量bssString。
4、yczChar = "P" : 把要查找的字符P赋给变量yczChar。
5、MsgBox "bssString = "" ABpAApCDPBBP """ & Chr(10) & _
"yczChar= ""P"" 时: " & Chr(10) & Chr(10) & _
"InStr(4, bssString, yczChar, 1) 返回值为 " & _
InStr(4, bssString, yczChar, 1): 用消息框显示从第四个字符开始,以文本比较的方式找字符P,返回值为 6(小写 p的位置)。小写 p 和大写 P 在文本比较下是一样的,也就是当函数的最后一个参数为1时,查找不分大小写。把要查找的字符P的位置赋给变量yczChar。式中Chr(10)是换行符。
6、wz = Instr(1, bssString, yczChar, 0) :从第一个字符开始,以二进制比较的方式查找,返回值为 9(大写 P的位置)。小写 p 和大写 P 在二进制比较下是不一样的,也就是当函数的最后一个参数为0时,查找分大小写。把查找到的字符P的位置赋给变量wz。
7、wz = Instr(bssString, yczChar) :上一句也可写成这样的,因为缺省的比对方式为二进制比较(最后一个参数可省略)。第一个参数省略默认从第一个字符开始查找。返回值为 9。
8、wz = Instr(1,bssString, ”W”) :在被搜索的字符串中查找字符W,由于没找到返回值为0。

InStr 函数
返回 Variant (Long),指定一字符串在另一字符串中最先出现的位置。

InStr([start, ]string1, string2[, compare])
InStr 函数的语法具有下面的参数:
start 可选参数。为数值表达式,设置每次搜索的起点。如果省略,将从第一个字符的位置开始。如果指定了 compare 参数,则一定要有 start 参数。
string1 必要参数。接受搜索的字符串表达式。
string2 必要参数。被搜索的字符串表达式。
Compare可选参数。指定字符串比较。如果省略 compare,Option Compare 的设置将决定比较的类型。
compare 参数设置为:
常数 值 描述
vbUseCompareOption -1 使用Option Compare 语句设置执行一个比较。
vbBinaryCompare 0 执行一个二进制比较。
vbTextCompare 1 执行一个按照原文的比较。
vbDatabaseCompare 2 仅适用于Microsoft Access,执行一个基于数据库中信息的比较。

InStr(1, Range("D3"), Chr(10))

扩展阅读:vba编程必背50个程序 ... 怎么安装 excel vba 插件 ... 表格vba编程怎样使用 ... excel vba 输入提示 ... vba if else ... excel vba编程教程完整版 ... excel vba 字典用法 ... excel vba基础入门 ... vba中excel转word ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网