[問題] 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