么么X

总是在偷师,也坚持在分享...share for happiness!

学习Find函数和select

Find函数其实就类似于在excel按下Ctrl+F出现的查找功能:在某个区域中查找你要找的字符,一旦找到就定位到第一个对应的单元格。
所以Find函数的返回值是个单元格,也就是个range值。
举例,sheets("目标sheet").objectRange.Find("查找字符")。我一般也是先定义一个range变量rng,然后赋值,rng=sheets("目标sheet").objectRange.Find("查找字符")。
找到之后用就容易,比如要取列号或行号,用rng.column或rng.row,如果要选中这一行,或这一列,就是用rows(rng.row)或columns(rng.column)。
这就是Find函数,简单吧。
不过要提醒的是,Find函数有多个参数,其中有一个就是全字匹配,我自己用的比较多,基本上都是全字匹配。就像这样子,rng=sheets("目标sheet").objectRange.Find("查找字符",lookat:=xlwhole),LookAt这个参数就是来决定是包含呢还是全字匹配,有两个字,xlWhole就是全字匹配了,xlPart是默认值。MatchCase和MatchByter这两个参数是决定是否区分大小写和是否区分全角和半角,默认值都是False,我用得比较少。就不说了。
昨天在使用range(cells(i,j),cells(l,m))来定义区域时,总是报错。不断反复尝试后,发现,如果我在sheet1里面写代码,直接定义sheet1中的区域,这个代码没问题。但是如果在sheet2种写这种代码来定义sheet1中的区域就不行了。并且我都使用了avtivate来激活相对应的sheet,都是不行。
后来,我就尝试用select来激活/选中对应的sheet,成功了。
经验表明,在定义、选取区域时,尽量使用select来激活/选取对应的sheet比较保险。

posted on 2013-12-14 14:56  么么X  阅读(341)  评论(0编辑  收藏  举报

导航