龙网论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5329|回复: 0
收起左侧

[办公] VBA函数精选之十八(Instr 函数)

[复制链接]
发表于 2012-1-12 19:46 | 显示全部楼层 |阅读模式
第1.18例 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,执行一个基于数据库中信息的比较。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|龙网论坛 ( 辽ICP备06014320号 )

GMT+8, 2024-3-29 09:29

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表