精华内容
下载资源
问答
  • 学习Excel技术,关注微信公众号:excelperfect在VBA中,InStr函数是一个非常有用的函数,可用于查找字符串在另一个字符串中第一次出现的位置。InStr函数的语法如下图1所示:图1其中:1.参数Start,可选,指定搜索...

    学习Excel技术,关注微信公众号:

    excelperfect

    在VBA中,InStr函数是一个非常有用的函数,可用于查找某字符串在另一个字符串中第一次出现的位置。

    InStr函数的语法如下图1所示:

    5510d66aa78ff6f5142acab71a92831a.png

    图1

    其中:

    1.参数Start,可选,指定搜索的起始位置。如果省略该参数,则会从String1的第一个字符开始查找。

    2.参数String1,必需,被搜索的字符串。

    3.参数String2,必需,要搜索的字符串。

    4.参数Compare,可选,指定比较模式。默认为vbBinaryCompare模式,即二进制比较,还可以指定为vbTextCompare模式(文本比较,不区分大小写)和vbDatabaseCompare模式(数据库比较,只适用于Access)。如果指定该参数,就要同时指定参数Start。如果省略该参数,比较模式由Option Compare语句值决定。

    简单地说,InStr函数就是查找String2在String1中第一次出现的位置。

    InStr函数的返回值有以下几种情形:

    1.如果String1长度为0,则返回值0。

    2.如果String1为Null,则返回值Null。

    3.如果String2长度为0,则返回参数Start的值。

    4.如果String2为Null,则返回值Null。

    5.如果找不到String2,则返回值0。

    6.如果在String1中找到了String2,则返回String2被找到的位置。

    7.如果参数Start指定的数值大于String2的长度,,则返回值0。

    示例1:获取字符出现的位置

    下面的代码返回一个字符在另一个字符中出现的位置:

    Sub InstrSample1()

        Dim str1 As String

        Dim str2 As String

        Dim iPos As Long

        str1 = "我的微信公众号是完美Excel"

        str2 = "完美Excel"

        iPos = InStr(1, str1,str2)

        Debug.Print str2 &" 出现在 " & str1 & " 的第"& iPos & "个字符."

    End Sub

    运行结果如下图2所示。

    a931f692bc0b3fd3eb744fce33284e03.png

    图2

    示例2:统计字符串中包含某子字符串的数量

    下面的代码统计字符串str1中发现字符串str2的个数:

    Sub InstrSample2()

        Dim str1 As String

        Dim str2 As String

        Dim str As String

        Dim iPos As Long

        Dim iCount As Long

        str1 ="ABCDABEF"

        str2 = "AB"

        str = str1

        iPos = InStr(1, str1,str2)

        Do While (iPos <>0)

            iCount = iCount + 1

            str1 = Mid(str1, iPos+ Len(str2))

            iPos = InStr(1, str1,str2)

        Loop

        Debug.Print"""" & str & """" & "中共有" &iCount & "个" & "字符串""" & str2 & """"

    End Sub

    运行结果如下图3所示。

    f5e50441409da9a7998df9aa3f33a7dd.png

    图3

    示例3:获取字符出现的多个位置

    如果一个字符串在另一个字符串中多次出现,要获取该字符串出现的这些位置值,示例代码如下:

    Sub InstrSample3()

        Dim str1 As String

        Dim str2 As String

        Dim str As String

        Dim iPos As Long

        Dim iPos1 As Long

        Dim iPosAll() As Long

        Dim iCount As Long

        str1 ="ABCDABEFAB"

        str2 = "AB"

        str = str1

        iPos = InStr(1, str1,str2)

        iPos1 = iPos

        Do While (iPos <>0)

            iCount = iCount + 1

            ReDim Preserve iPosAll(1 To iCount)

            iPosAll(iCount) =iPos1

            str1 = Mid(str1, iPos+ Len(str2))

            iPos = InStr(1, str1,str2)

            iPos1 = iPos1 +Len(str2) + iPos - 1

        Loop

        Debug.Print"""" & str2 & """" & "出现在" &"""" & str & """" & "中的位置:"

        For iCount =LBound(iPosAll) To UBound(iPosAll)

            Debug.Print iPosAll(iCount)

        Next iCount

    End Sub

    运行结果如下图4所示。

    83541d3752524db339082dfa1a0eb80b.png

    图4

    可以将上面的代码转换成一个自定义函数,由用户传递相应的参数,该函数返回由字符位置组成的数组:

    Function InstrSample4(str1 As String, str2 As String) As Long()

        Dim iPos As Long

        Dim iPos1 As Long

        Dim iPosAll() As Long

        Dim iCount As Long

        iPos = InStr(1, str1,str2)

        iPos1 = iPos

        Do While (iPos <>0)

            iCount = iCount + 1

            ReDim Preserve iPosAll(1 To iCount)

            iPosAll(iCount) =iPos1

            str1 = Mid(str1, iPos+ Len(str2))

            iPos = InStr(1, str1,str2)

            iPos1 = iPos1 +Len(str2) + iPos - 1

        Loop

        InstrSample4 = iPosAll()

    End Function

    a7c6d2bbcb828f4b368b15a4e6da6d97.png

    展开全文
  • 155.在指定列中寻找含有指定字符串的单元格,并将符合条件的单元格标为红色,并将对应的下一列单元格赋值为1 156.清除字符串中的空格 157.查找合并单元格位置 158.阴阳历转换和阴阳历生日 159.利用数组和Substitute...
  • Excel VBA随笔一

    2020-02-21 19:46:17
    即席查询(Ad Hoc):用户根据自己的需求,灵活的选择查询条件,系统能够根据用户的选择生成相应的统计报表。 即席查询与普通应用查询...substitute函数:substitute(源文本,旧字符串,新字符串,[替换第几个出现的]...

    即席查询(Ad Hoc):用户根据自己的需求,灵活的选择查询条件,系统能够根据用户的选择生成相应的统计报表。
    即席查询与普通应用查询最大的不同是普通的应用查询是定制开发的,而即席查询是由用户自定义查询条件的。

    find函数:find(查找的内容,源文本,从第几个位置开始查找),返回的结果是它的位置


    substitute函数:substitute(源文本,旧字符串,新字符串,[替换第几个出现的])


    replace函数:replace(源文本,替换开始的位置,替换字符数,替换字符)


    replaceb函数:replaceb(源文本,替换开始的位置,替换字节数,替换字符)

    32699是replace函数允许替换最大字符数


    search函数是查找单个单元格内的某个字符串


    match函数是查找多个单元格,与每个单元格的内容进行精确匹配


    宏表函数EVALUARTE:提取单元格内容,如果该单元格为公式,则得出结果
        公式--名称管理器--新建 =EVALUATE(Sheet1$A2)  其中$A2为需要计算结果的单元列


    lenb:返回文本中表示字符的字节数,通常用于减去len()得到汉字的个数


    sumifs函数:多条件求和,用于对某一区域内满足多重条件(两个条件以上)的单元格求和。
    sumifs(实际求和区域,第一个条件区域,第一个对应的求和条件,第二个条件区域,第。。)

    什么是VBA,它有什么作用:实现Excel中没有提供的功能,提高运行速度,编写自定义函数,实现自动化功能,通过插入窗体做小型管理软件。


    宏的作用:一组动作的集合。
     

    展开全文
  • 函数作用:查找字符串(withinstr)在另一字符串中(findstr1)中某一次(startnum)出现的位置,返回零表示没找到。..................................................57 '31.函数作用:增加文件路径最后的“\”符号....
  • VBSCRIPT中文手册

    热门讨论 2010-11-12 10:13:06
    InStrRev 函数 返回一个字符串在另一个字符串中出现的位置,是从字符串的末尾算起。 Int 函数 返回数的整数部分。 整数除法运算符(\) 两数相除,返回的商取其整数部分。 Is 运算符 比较两个对象引用变量。 ...
  • vb Script参考文档

    2009-07-28 22:13:02
    InStrRev 函数 返回一个字符串在另一个字符串中出现的位置,是从字符串的末尾算起。 Int 函数 返回数的整数部分。 整数除法运算符(\) 两数相除,返回的商取其整数部分。 Is 运算符 比较两个对象引用变量。 ...
  • 细分为<用数字顺序或倒序><用EXCEL存储格内容><增加字符串><清除字符串><替换字符串>多方式改名,优点明显。例:替换字符串就支持起始长度、替换个数、GB2与BIG5码相互转换等多选项操作,也支持文件扩展名修改。现...
  • EXCEL集成工具箱V6.0

    2010-09-11 01:44:37
    细分为<用数字顺序或倒序><用EXCEL存储格内容><增加字符串><清除字符串><替换字符串>多方式改名,优点明显。例:替换字符串就支持起始长度、替换个数、GB2与BIG5码相互转换等多选项操作,也支持文件扩展名修改。现...
  • 细分为<用数字顺序或倒序><用EXCEL存储格内容><增加字符串><清除字符串><替换字符串>多方式改名,优点明显。例:替换字符串就支持起始长度、替换个数、GB2与BIG5码相互转换等多选项操作,也支持文件扩展名修改。现...
  • 细分为<用数字顺序或倒序><用EXCEL存储格内容><增加字符串><清除字符串><替换字符串>多方式改名,优点明显。例:替换字符串就支持起始长度、替换个数、GB2与BIG5码相互转换等多选项操作,也支持文件扩展名修改。现...
  • 细分为<用数字顺序或倒序><用EXCEL存储格内容><增加字符串><清除字符串><替换字符串>多方式改名,优点明显。例:替换字符串就支持起始长度、替换个数、GB2与BIG5码相互转换等多选项操作,也支持文件扩展名修改。现...
  • Excel百宝箱9.0无限制破解版

    热门讨论 2012-02-03 19:05:29
    【公农双历查询】:生成多功能日历,可以查询所有节、假日和农历 【高级定位】:多功能选择(查找)工具。可以选择大于某值或者小于某值或者在...【计算表达式】:将表达式转换成值(包括从混合字符串中取出表达式)
  • Excel百宝箱

    2012-10-27 17:09:21
    一个教导和辅助利用Excel工具 公农双历查询】:生成多功能日历,可以查询所有节、假日和农历 【高级定位】:多功能选择(查找)工具。...【计算表达式】:将表达式转换成值(包括从混合字符串中取出表达式)
  • 【计算表达式】:将表达式转换成值(包括从混合字符串中取出表达式) <══════════════════┤ 函数功能介绍 ├════════════════════> 函数名称:sumifcol 函数功能与...
  • │ │ 5.4.3 返回已用编号、缺号分布字符串的处理示例.sql │ │ 5.4.4 缺勤天数统计的处理示例.sql │ │ │ └─其他 │ -补位法.sql │ 以另一个表的字段做默认值.sql │ 以另一表的字段生成编号.sql │ 关联...
  • 【计算表达式】:将表达式转换成值(包括从混合字符串中取出表达式) <══════════════════┤ 函数功能介绍 ├════════════════════> 函数名称:sumifcol 函数功能与参数...
  • Kofler还是Definitive Guide to Excel VBA第2版作者。 目录 封面 -23 封底 -22 扉页 -21 版权 -20 版权声明 -19 译者序 -18 前言 -16 目录 -11 第一部分 入门 1 第1章 什么是MySQL 2 1.1 什么是数据库 2 1.1.1...
  • 替换替换第N次出现的字符串的函数。第一参数为引用,第二参数为待替换字符串,第三参数为新字符串,第四参数用于指定替换第几次出现的字符,范围在1到256之间 重复判断指定区域中是否有重复单元格的函数只有一个参数...
  • arcgis工具

    2012-10-22 22:37:31
    可以用LIKE运算符(不是 = 运算符)与通配符一起构建部分字符串查询。 例如,表达式 [STATE_NAME] LIKE 'Miss*'将在美国州名中选择Mississippi和Missouri。 *表示多个字符。 还比如,查询表达式 [OWNER_NAME] ...
  • EXCEL百宝箱8.0终极版

    2011-11-05 16:48:02
    函数功能与参数:替换第N次出现的字符串的函数。第一参数为引用,第二参数为待替换字符串,第三参数为新字符串,第四参数用于指定替换第几次出现的字符,范围在1到256之间。 函数名称:重复 函数功能与参数:判断...
  • Excel百宝箱8.0

    2011-06-07 21:32:17
    函数功能与参数:替换第N次出现的字符串的函数。第一参数为引用,第二参数为待替换字符串,第三参数为新字符串,第四参数用于指定替换第几次出现的字符,范围在1到256之间。 函数名称:重复 函数功能与参数:判断...
  • 20.5 字符串函数 347 20.6 集合函数 348 20.7 系统变量 348 20.8 输入变量 348 20.9 条件取值 349 20.10 Excel扩展函数 349 第21章、 实时系统、实时管理 352 21.1 利用手机短信 352 21.1.1 短信中心安装和配置 ...
  • │ │ 技巧169 计算字符出现的次数.xls │ │ 技巧170 提取字符串.xls │ │ 技巧171 文本合并符号的妙用.xls │ │ 技巧172 重复记录自动加编号.xls │ │ 技巧174 解读身份证编码信息.xls │ │ 技巧175 ...

空空如也

空空如也

1 2
收藏数 23
精华内容 9
关键字:

vba查找字符串的字符出现的位置