设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 4573|回复: 0
打印 上一主题 下一主题

[模块/函数] [技巧]Replace函数与Instr函数不区分大小写

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2015-12-4 11:37:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Replace函数与Instr函数不区分大小写,Replace函数与Instr函数默认是区分大小写的,有时我们对比或替换时不想区分大小写,当然可以将字符串进行ucase大小写转换,但更简单的办法是,加一个参数。
以下内容摘自Mr.Can's Blog:

VB或VBA语言里Replace函数如何不区别大小写是很多问的问题,但网上难得看到好答案,一般都是用正则表达式,其实此函数本身就有忽略大小写的功能参数,只是平时大家都不用,于是舍近求远了。

Replace函数一共有六个参数,其中三个必须三个可选:

Replace(expression, find, replacewith[, start[, count[, compare]]])

compare参数表示比较方式,平时我们都省略了,那样是按二进制比较,区分大小写的,还可以设为按文字比较(值1),这样就不区别大小写了。

当我们指定了compare参数,就必须把start(开始位置)和count(替换次数)都指定了,因为它们在前面。

所以不区别大小写替换的方法是(用举例看得明白些):

Replace("pPfdppf","PP","",1,-1,1) 结果返回:fdf

其它方法

使用正则表达式:

Function replace1(str,rplstr,rplwith)
dim re
Set re=new RegExp
re.IgnoreCase =true
re.Global=True  
re.Pattern=rplstr
replace1=re.replace(str,rplwith)
End Function

调用方法:replace1("pPfdppf","PP","")

大小转换法:

如果内容的大小写不重要可以先将内容Ucase或Lcase一下再替换,不过既然有了前面的好方法,此法就作废了。

Instr函数返回某字符(串)在某字符串里首次出现的位置,如果没有则返回0。它有四个参数,两个必须两个可选,如果省略了可选参数就会区别大小写。

InStr([start, ]string1, string2[, compare])

要不区别大小写应该这样写:

Instr(1,"pPfdppf","PP",1) 结果返回1

起作用的是后面那个1,原理同Replace函数。需要注意的是前面那个1不能省略,省略了会报错。

其实很多函数我们都是只知其一不知其二,只满足于简单的用法是不行的。据我所了解的,现在还没有一个完整系统又简单易理解的VB函数教程,很多使用教程都没有实例,那些参数的用法看不明白。我会在以后把常用的VB函数具体用法整理上来。

这个参数也可用 vbTextCompare


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-24 00:34 , Processed in 0.076900 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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