[问题] excel vba型态不符合

楼主: s212gj (PTT分身就是个黑天鹅)   2016-09-29 21:44:00
软件:excel
版本:2013
自定义一个range
Set rng1 = Range(Cells(2, 1), Cells([a2].End(xlDown).Row,
[a2].End(xlToRight).Column))
如果在rng1的L字段里有USD的字样的话,让他在这个rng最后一列下,再插入一列
我写:
If rng1.Columns("L:L") Like "USD" Then
这句跳出型态不符合
不知道哪里有问题想好久><
作者: waiter337 (给开司一罐苏格登)   2016-09-29 21:55:00
感觉上应该不用if我想想看抱歉,我目前还没办法找出问题=,=我目前有发现一个问题rng1 经过第一行的运算后 他是一个"范围"所以你目前if 等于说,他会用整个范围去对照usd应该要想办法改成这个范围中的最后一个L或者L中最下面那个格子我写到这边但后我后面写不大出来= =...我没存到档我刚设dim rng2 as Integer ,rng3 as Integer我是先把rng2的row值,去用L排抓出来rng3 会去抓出rng2最后那格的.value然后text1="usd"If rng3.Value Like text1 Then就会过去了但是要把rng1 的row在加上1 这里我就卡住了
作者: soyoso (我是耀宗)   2016-09-29 23:23:00
如判断储存格L栏内是否有出现"USD",可用range.findhttp://imgur.com/NC4bdua
作者: waiter337 (给开司一罐苏格登)   2016-09-29 23:24:00
哇呜 难怪我用.value 都没办法 感谢指导
作者: soyoso (我是耀宗)   2016-09-29 23:25:00
range.find的方式,再请至msdn内看一下
楼主: s212gj (PTT分身就是个黑天鹅)   2016-09-30 00:23:00
我在试试看 谢谢!!所以用like不行吗?我用instr也不行另外想问一下,一定要用if not find nothing吗?可以用iffind = true之类的肯定句吗?纯粹想知道为什么要这样用~
作者: soyoso (我是耀宗)   2016-09-30 00:45:00
range.find无搜寻到回传的值是nothing可用like,如 http://imgur.com/S8I6QdY 方式instr 如http://imgur.com/doR1pOX如要取得布林值的话iserror配合application.match方式worksheetfunction.countif方面也可使用
楼主: s212gj (PTT分身就是个黑天鹅)   2016-09-30 08:47:00
大感谢!不好意思,我想在请问一下,如果我要find USD或HKD,要怎么写呢
作者: soyoso (我是耀宗)   2016-09-30 12:15:00
数量2个的话,加上个if判断,或的话以or数量增加,为了不要让判断的宏程式码过长,可加上循环来带要寻找的字串
楼主: s212gj (PTT分身就是个黑天鹅)   2016-09-30 12:31:00
3Q!

Links booklink

Contact Us: admin [ a t ] ucptt.com