求教EXCEL VBA中,InStr的详细用法。 vba中instr函数怎么用?
\u6c42EXCEL VBA instr\u51fd\u6570\u7684\u8be6\u7ec6\u7528\u6cd5Instr\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 ...