[爆卦]excel vba搜尋關鍵字是什麼?優點缺點精華區懶人包

為什麼這篇excel vba搜尋關鍵字鄉民發文收入到精華區:因為在excel vba搜尋關鍵字這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者stma (BBS)看板Office標題[問題] Excel VBA 找尋/複製關鍵欄時間Sat...


(若是和其他不同軟體互動之問題 請記得一併填寫)
軟體: office 2016

版本: 2016

ppt.cc/FlRbq
^^^^^^^^^^^^^^^^^^^
直接看圖比較快

關鍵字 = A2 內的"AAA"
需求是 搜尋E1~I1 中 完全符合 A2 關鍵字 "AAA"
把目標欄整欄複製到黃色區域

本來想用find 函數, 但 Find (what,) 找address 一直try 失敗....
想請問大家有無較好方法?



--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.195.38.107
※ 文章網址: https://www.ptt.cc/bbs/Office/M.1484404787.A.4C4.html
soyoso: range.find what的部分指定儲存格a2,要完全符合的話 01/14 23:58
soyoso: lookat的部分也請設定,要整欄複製以range.entirecolumn 01/15 00:00
soyoso: copy至黃色區域 01/15 00:01
soyoso: 如不以range.copy的話則以range = range.value的方式複製 01/15 00:03
waiter337: 要用lookat:=xlwhole 01/15 22:12
waiter337: sheets("工作表1").Rows(1).Find(What:="AAA", Lookat: 01/15 22:14
waiter337: =xlWhole, LookIn:=xlValues, SearchDirection:= 01/15 22:14
waiter337: xlPrevious).Column 01/15 22:15
waiter337: Rows(1)是找的列號 01/15 22:17
waiter337: lookat:=xlwhole 是完整比對,若沒打就是模糊比對 01/15 22:18
waiter337: SearchDirection:=xlPrevious 是向後尋找,xlnext是相反 01/15 22:18
waiter337: 如果what:="AAA"改成what:="*" 則會找出最後一列資料 01/15 22:22
waiter337: 的欄號 01/15 22:23
waiter337: 如果把rows(1)換成columns(1),同時.column換成.row 則 01/15 22:24
waiter337: 會改找列值 01/15 22:24
soyoso: "若沒打就是模糊比對",並不是喔,而是尋找及取代視窗如果 01/15 22:37
soyoso: "儲存格內容須完全相符"(勾選)時,若沒打時也是比對完全相 01/15 22:39
soyoso: 符 01/15 22:40
soyoso: 沒打並不一定預設就是以模糊比對 01/15 22:44
soyoso: 另外xlPrevious 是向後尋找,應為向前或向上一個符合值吧 01/15 22:53
soyoso: https://goo.gl/y2hD0y 01/15 22:53
waiter337: 感謝s大,但我在使用上也覺得怪怪的 01/17 04:02
waiter337: 想問一下 為什麼123的xlnext 不是1 01/17 04:17
waiter337: http://i.imgur.com/bnFYZbA.jpg 01/17 04:17
waiter337: http://i.imgur.com/3j6t7XR.jpg 01/17 04:18
waiter337: http://i.imgur.com/duzlRWH.jpg 01/17 04:19
waiter337: 這個問題 我也一直感覺像在迷霧裡面 01/17 04:20
waiter337: 我在猜想,他是否用row(1)開始起算的 01/17 04:22
waiter337: 但更詭異的是找空白"*" 非空白格他還是說 row(2) 01/17 04:23
waiter337: http://i.imgur.com/I0DRB0r.jpg 01/17 04:26
waiter337: 眼神死=.= 01/17 04:26
waiter337: 阿,那個找空白是說找最頭或最尾的"任何"值 在+1或-1 01/17 04:28
waiter337: 但對於CCC 這個 他不管怎麼找都不會是1 xd 好難懂=m= 01/17 04:29
waiter337: http://i.imgur.com/p9ELc1y.jpg 01/17 04:33
waiter337: http://i.imgur.com/VRXY55T.jpg 01/17 04:33
waiter337: 因為我很常用這個寫法,但真的想找第一欄或列是沒辦法 01/17 04:35
waiter337: 的,我外面會包個if,假如這行沒資料就不會啟用find 01/17 04:35
waiter337: http://i.imgur.com/BuH4666.jpg 01/17 04:36
waiter337: http://i.imgur.com/4LhzKjm.jpg 01/17 04:37
waiter337: 程式都沒改 01/17 04:39
waiter337: 使用上很奇妙 01/17 04:40
waiter337: 後面的頭尾寫反了 01/17 04:41
waiter337: Msgbox的頭尾寫反了 01/17 04:41
soyoso: 因為會配合參數after,而巨集內省略的話則搜尋會從範圍左 01/17 07:08
soyoso: 上角的儲存格之後開始 01/17 07:08
soyoso: https://i.imgur.com/7mJoWil 01/17 07:27
soyoso: https://i.imgur.com/4qWFJCV 01/17 07:28
soyoso: 搜尋上會以after這個參數之前、之後 01/17 07:30
soyoso: 因此如以range.find範圍內第一筆找非空白儲存格的話,可以 01/17 07:47
soyoso: after參數設為範圍最下方儲存格,searchdirection設為 01/17 07:48
soyoso: xlnext 01/17 07:48
waiter337: 學到了!!!!!!!!!!!!!!!!!!!!!!!!!!! 01/17 15:56

你可能也想看看

搜尋相關網站