-
vba 自定义function返回值_VBA专题03:InStr函数
2020-11-25 10:07:55学习Excel技术,关注微信公众号:excelperfect在VBA中,InStr函数是一个非常有用的函数,可用于查找某字符串在另一个字符串中第一次出现的位置。InStr函数的语法如下图1所示:图1其中:1.参数Start,可选,指定搜索...学习Excel技术,关注微信公众号:
excelperfect
在VBA中,InStr函数是一个非常有用的函数,可用于查找某字符串在另一个字符串中第一次出现的位置。
InStr函数的语法如下图1所示:
图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所示。
图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所示。
图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所示。
图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
-
我整理的VBA 自定义函数大全 共138页
2008-11-21 16:14:03155.在指定列中寻找含有指定字符串的单元格,并将符合条件的单元格标为红色,并将对应的下一列单元格赋值为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中没有提供的功能,提高运行速度,编写自定义函数,实现自动化功能,通过插入窗体做小型管理软件。
宏的作用:一组动作的集合。
-
excel中161个VBA_自定义函数超级实用
2018-03-28 08:36:32函数作用:查找一字符串(withinstr)在另一字符串中(findstr1)中某一次(startnum)出现时的位置,返回零表示没找到。..................................................57 '31.函数作用:增加文件路径最后的“\”符号.... -
VBSCRIPT中文手册
2010-11-12 10:13:06InStrRev 函数 返回一个字符串在另一个字符串中出现的位置,是从字符串的末尾算起。 Int 函数 返回数的整数部分。 整数除法运算符(\) 两数相除,返回的商取其整数部分。 Is 运算符 比较两个对象引用变量。 ... -
vb Script参考文档
2009-07-28 22:13:02InStrRev 函数 返回一个字符串在另一个字符串中出现的位置,是从字符串的末尾算起。 Int 函数 返回数的整数部分。 整数除法运算符(\) 两数相除,返回的商取其整数部分。 Is 运算符 比较两个对象引用变量。 ... -
EXCEL集成工具箱完整版 (简体/繁体/英文多国语言版) V7.0
2010-08-13 10:31:10细分为<用数字顺序或倒序><用EXCEL存储格内容><增加字符串><清除字符串><替换字符串>多方式改名,优点明显。例:替换字符串就支持起始长度、替换个数、GB2与BIG5码相互转换等多选项操作,也支持文件扩展名的修改。现... -
EXCEL集成工具箱V6.0
2010-09-11 01:44:37细分为<用数字顺序或倒序><用EXCEL存储格内容><增加字符串><清除字符串><替换字符串>多方式改名,优点明显。例:替换字符串就支持起始长度、替换个数、GB2与BIG5码相互转换等多选项操作,也支持文件扩展名的修改。现... -
EXCEL集成工具箱V8.0完整增强版(精简)
2010-09-23 16:58:17细分为<用数字顺序或倒序><用EXCEL存储格内容><增加字符串><清除字符串><替换字符串>多方式改名,优点明显。例:替换字符串就支持起始长度、替换个数、GB2与BIG5码相互转换等多选项操作,也支持文件扩展名的修改。现... -
EXCEL集成工具箱V8.0 多国语言版(2003-2010通用)
2010-09-11 12:08:58细分为<用数字顺序或倒序><用EXCEL存储格内容><增加字符串><清除字符串><替换字符串>多方式改名,优点明显。例:替换字符串就支持起始长度、替换个数、GB2与BIG5码相互转换等多选项操作,也支持文件扩展名的修改。现... -
EXCEL集成工具箱V9.0 多国语言最终原版(2003-2010通用)
2011-01-07 20:40:25细分为<用数字顺序或倒序><用EXCEL存储格内容><增加字符串><清除字符串><替换字符串>多方式改名,优点明显。例:替换字符串就支持起始长度、替换个数、GB2与BIG5码相互转换等多选项操作,也支持文件扩展名的修改。现... -
Excel百宝箱9.0无限制破解版
2012-02-03 19:05:29【公农双历查询】:生成多功能日历,可以查询所有节、假日和农历 【高级定位】:多功能选择(查找)工具。可以选择大于某值或者小于某值或者在...【计算表达式】:将表达式转换成值(包括从混合字符串中取出的表达式) -
Excel百宝箱
2012-10-27 17:09:21一个教导和辅助利用Excel的工具 公农双历查询】:生成多功能日历,可以查询所有节、假日和农历 【高级定位】:多功能选择(查找)工具。...【计算表达式】:将表达式转换成值(包括从混合字符串中取出的表达式) -
Excel百宝箱9.0无限制破解版.rar
2012-09-05 09:31:51【计算表达式】:将表达式转换成值(包括从混合字符串中取出的表达式) <══════════════════┤ 函数功能介绍 ├════════════════════> 函数名称:sumifcol 函数功能与... -
中文版SQL Server2000开发与管理应用实例>>随书源码
2009-02-19 22:23:46│ │ 5.4.3 返回已用编号、缺号分布字符串的处理示例.sql │ │ 5.4.4 缺勤天数统计的处理示例.sql │ │ │ └─其他 │ -补位法.sql │ 以另一个表的字段做默认值.sql │ 以另一表的字段生成编号.sql │ 关联... -
Exce百宝箱——2012版本.rar
2012-10-19 19:52:33【计算表达式】:将表达式转换成值(包括从混合字符串中取出的表达式) <══════════════════┤ 函数功能介绍 ├════════════════════> 函数名称:sumifcol 函数功能与参数... -
MySQL 5权威指南(第3版)--详细书签版
2013-02-05 15:44:00Kofler还是Definitive Guide to Excel VBA第2版的作者。 目录 封面 -23 封底 -22 扉页 -21 版权 -20 版权声明 -19 译者序 -18 前言 -16 目录 -11 第一部分 入门 1 第1章 什么是MySQL 2 1.1 什么是数据库 2 1.1.1... -
Excel百宝箱 9.0 破解版 批量导入图片等200种功能
2013-05-11 22:46:24替换替换第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之间。 函数名称:重复 函数功能与参数:判断... -
勤哲excel服务器2010教程
2018-10-01 22:47:0220.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 短信中心的安装和配置 ... -
《Excel实战技巧精粹》示例文件 光盘文件
2012-02-24 15:37:04│ │ 技巧169 计算字符出现的次数.xls │ │ 技巧170 提取字符串.xls │ │ 技巧171 文本合并符号的妙用.xls │ │ 技巧172 重复记录自动加编号.xls │ │ 技巧174 解读身份证编码信息.xls │ │ 技巧175 ...