Excel 2010 VBA 入门 047 判断某文本中是否包含指定字符(Instr)
示例
如图所示,该表为某公司采购清单。由于在记录时并未标记供应商来源地,只能通过E列供应商名称中寻找。现需要筛选出所有上海的供应商采购记录,该如何用VBA实现?
商品编码 | 入库日期 | 部门 | 业务员 | 供应商 | 数量 | 单价 | 金额 |
GXGY023 | 2009/1/1 | 采购部 | 刘清 | 上海照明公司 | 200 | 41.88 | 8376.07 |
GXGY024 | 2009/1/1 | 采购部 | 刘清 | 上海照明公司 | 100 | 23.93 | 2393.16 |
QDJC022 | 2009/2/20 | 采购部 | 刘清 | 天津气动有限公司 | 20 | 18.8 | 376.07 |
qdjc023 | 2009/2/20 | 采购部 | 刘清 | 天津气动有限公司 | 1 | 330.77 | 330.77 |
QDJC028 | 2009/2/20 | 采购部 | 刘清 | 天津气动有限公司 | 20 | 12.82 | 256.41 |
SBCS001 | 2009/2/16 | 市场部 | 杨洪兴 | 宁夏输送设备公司 | 6 | 20000 | 120000 |
GXGY025 | 2009/2/16 | 市场部 | 张精 | 南京电子有限公司 | 175 | 38.46 | 6730.77 |
SBKY002 | 2009/2/20 | 采购部 | 马一鸣 | 安徽中国工厂 | 4 | 13490.08 | 53960.3 |
SBKY003 | 2009/2/20 | 采购部 | 马一鸣 | 安徽中国工厂 | 7 | 8547.25 | 59830.74 |
SBLG001 | 2009/2/20 | 采购部 | 马一鸣 | 安徽中国工厂 | 3 | 3046.15 | 9138.46 |
SBQG001 | 2009/2/20 | 采购部 | 马一鸣 | 安徽中国工厂 | 7 | 1609.26 | 11264.85 |
SBKY001 | 2009/2/20 | 采购部 | 马一鸣 | 安徽中国工厂 | 4 | 17094.02 | 68376.07 |
JXBL001 | 2009/4/28 | 采购部 | 刘清 | 天津市装饰经营部 | 50 | 11.4 | 570 |
JXBL002 | 2009/4/28 | 采购部 | 刘清 | 天津市装饰经营部 | 40 | 11.4 | 456 |
GXGY032 | 2009/4/28 | 采购部 | 刘清 | 上海照明公司 | 50 | 24.79 | 1239.32 |
GXGY016 | 2009/4/28 | 采购部 | 刘清 | 上海照明公司 | 50 | 39.32 | 1965.81 |
GXGY027 | 2009/4/28 | 采购部 | 刘清 | 上海照明公司 | 100 | 35.9 | 3589.74 |
GXGY017 | 2009/4/28 | 采购部 | 刘清 | 上海照明公司 | 50 | 45.3 | 2264.96 |
GXGY028 | 2009/4/28 | 采购部 | 刘清 | 上海照明公司 | 50 | 45.3 | 2264.96 |
GXGY029 | 2009/4/28 | 采购部 | 刘清 | 上海照明公司 | 50 | 45.3 | 2264.96 |
GXGY030 | 2009/4/28 | 采购部 | 刘清 | 上海照明公司 | 200 | 46.15 | 9230.77 |
GXGY033 | 2009/4/28 | 采购部 | 刘清 | 上海照明公司 | 100 | 35.9 | 3589.74 |
GXGY031 | 2009/4/28 | 采购部 | 刘清 | 上海照明公司 | 50 | 49.57 | 2478.63 |
QDQG005 | 2009/4/28 | 采购部 | 刘清 | 天津ACCP(中国)公司 | 5 | 1495.73 | 7478.63 |
GXXJ006 | 2009/4/28 | 研发部 | 林秋雨 | 天津市器材有限公司 | 75 | 752.14 | 56410.26 |
SBBJHY001 | 2009/4/28 | 采购部 | 刘清 | 天津市轴承销售有限公司 | 60 | 2.99 | 179.49 |
SBBJHY002 | 2009/4/28 | 采购部 | 刘清 | 天津市轴承销售有限公司 | 1046 | 2.56 | 2682.05 |
实现代码
Option ExplicitSub 筛选包含某字符的记录()Dim rown As Long'显示所有记录Cells.Rows.Hidden = FalseFor rown = 2 To Cells(Rows.Count, "A").End(xlUp).RowIf InStr(1, Cells(rown, "E").Value, "上海") = 0 Then'不含“上海”则隐藏Rows(rown).HiddenEnd IfNext
End Sub
Instr函数
判断某个文本(字符串)中是否包含某字符时,除了可以使用Like运算符(或者工作表函数Find外,在VBA中还提供了另一个函数Instr。当文本中包含某个字符时,Instr返回该字符所在位置的序号,若不包含,则返回0。Instr函数的语法为
InStr([start,] stringl,string2 [,compare ])
- 参数start表示查找的起始位置,该参数可以省略,然而当指定了compare参数时,该参数必填。
- 参数string1表示被搜索的文本(字符串),即在哪里查找。
- 参数string2表示需要查找的字符。
- 参数compare为字符串的比较方式,当该参数省略时,则比较方式为Option Compare语句所指定的比较方式。该参数可以为表中的任意常量。
compare参数
常 量 |
值 |
说 明 |
vbUseCompareOption |
-1 |
使用Option Compare语句设置执行—个比较 |
vbBinaryCompare |
0 |
执行一个二进制比较 |
vbTextCompare |
1 |
执行一个按照原文的比较 |
vbDatabaseCompare |
2 |
仅适用于Microsoft Access,执行一个基于数据库中信息的比较 |
InstrRev函数
Instr函数是以从左至右的方向在接受搜索的文本(字符串)中查找是否包含某字符,VBA还提供了一个类似的函数InstrRev。该函数以从右至左的方向进行搜索,其语法为
InstrRev(stringl,string2 [,start [,compare])
- 参数stringl表示接受搜索的文本(字符串),即在哪里查找。
- 参数string2表示需要查找的字符。
- 参数start表示接受查找的文本从string1开始至第几位,若省略或者设置为-1,则表示查找整个string1。如以下表达式中,设置了start参数为4,由于string1的前四位为"1234”,在该文本(字符串)内找不到5,因而返回0。
InstrRev("12345","5",4)
- 参数compare为字符串的比较方式,当该参数省略时,则比较方式为Option Compare语句所指定的比较方式。
Excel 2010 VBA 入门 047 判断某文本中是否包含指定字符(Instr)相关推荐
- Excel 2010 VBA 入门 048 批量替换文本中的指定字符(replayce函数和方法)
目录 示例: 实现代码 Replace函数 单元格对象的Replace方法 使用Replace方法实现代码 示例: 如图所示,该表为某公司商品编码.由于商品目录升级,现商品编码中以"GXGY ...
- python查询字符串是否包含某字符串_python 判断检测字符串中是否包含指定字符或字符串(比如:?)...
in: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: Verdana, Arial, Helvetica, sans-se ...
- python判断字符串里的字符_python 判断检测字符串中是否包含指定字符或字符串(比如:?)...
in: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: Verdana, Arial, Helvetica, sans-se ...
- Excel 2010 VBA 入门 034 创建图片批注
目录 批注(Comment)对象 批注的添加与删除 FiIIFormat对象 OnError语句 示例: 批注(Comment)对象 Comment对象是单元格的一个属性,表示单元格的批注.Comme ...
- 判断字符串中是否包含指定字符(JavaScript)
判断字符串中是否包含指定字符 indexOf() indexOf()方法可返回某个指定的字符串值在字符串中首次出现的位置.如果要检索的字符串值没有出现,则返回 -1. search() search( ...
- SQL判断某列中是否包含中文字符、英文字符、纯数字,数据截取
SQL判断某列中是否包含中文字符.英文字符.纯数字 一.包含中文字符 select * from 表名 where 列名 like '%[吖-座]%' [吖-座]是中文字符集第一个到最后一个的范围,虽 ...
- Java:判断一个字符串中是否存在另一个字符子串以及判断一个字符串中是否存在指定字符
Java:判断一个字符串中包含指定字符子串,判断一个字符串中存在指定字符 字符串的contains方法可以判断一个字符串中是否存在另一个字符子串,示例如下 String Str = "Hel ...
- Excel 2010 VBA 入门 098 导入Access数据库的数据
示例 Access是微软Office组件的数据库软件,使用它可以进行简单的数据库软件的开发.但Access的图表功能和数据分析功能不如Excel强大,常用的做法可以将Access中的数据导入 Exce ...
- Excel 2010 VBA 入门 028 向单元格输入公式
目录 示例: 利用Formula属性给单元格输入公式 Formula属性和Value属性的联系与区别 利用FormulaR1C1属性给单元格输入公式 R1C1引用样式的规则 (1)"绝对引用 ...
最新文章
- 计算器服务端/客户端
- 前端学习(1956)vue之电商管理系统电商系统之添加代码到仓库中
- 富文本处理NSMutableAttributedString
- ios 构建版本一直在处理中_app已审核通过,ios构建版本失败,提示此构建版本...
- python中logging模块详解_python logging日志模块详解
- django应用之corsheaders[跨域设置]
- 实对称矩阵的特征值求法_“绝境之下”,如何求解矩阵的特征值?
- java 控制系统音量_用JNI实现调节win7系统音量
- 把握人类的八大本能,让你拥有“营销作弊器”
- cocos creator 横版射击游戏全民吃鸡大战 H5+安卓+IOS三端源码
- 使用uniapp时候根据设计图得出标准长宽比
- fedora安装 设置基础软件仓库时出错
- 阿里双11集团技术总指挥——汤兴:一场不亚于移动化的变革已经发生
- 对算法的时间复杂度的理解
- 含文档+PPT+源码等]精品基于ssm的足球联赛管理系统的设计与实现vue[包运行成功]计算机项目源码Java项目毕设
- Unexpected token o in JSON at position 1报错
- Java实现比赛打分,去掉最小值及最大值,求平均值
- ppt文字提取转word
- pytorch apex +ddp 分布式训练+数据优化
- AAC音频文件添加ADTS头