[算表] VBA取代字串

作者: nash30113 (賤王)   2015-02-04 22:14:39
軟體:
Microsoft Excel
版本:
2010
問題:
小弟整理檔案時發現有先編碼有重複,故想錄製巨集用VBA來取代字串
例如:我想找到儲存格完全等於"Sales - Andy Collins"
然後在其對應的E36欄位,將字串取代為"ACA"
接著繼續找其他儲存格完全等於另一字串如"Marc Bull - Sales"
然後在其對應的E39欄位將字串取代為"MBA"
依此類推
由於錄製的巨集會只有取最後的欄位如E36,如下:
Cells.Find(What:="Sales - Andy Collins", After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, MatchByte:=False,
SearchFormat:=False).Activate
Cells.FindNext(After:=ActiveCell).Activate
Range("E36").Select
ActiveCell.FormulaR1C1 = "ACA"
Range("E37").Select
但之後檔案若有改變欄位則無法使用
故想請教一下這邊要如何改才能是對應完"Sales - Andy Collins"
之後取代他對應那欄的字串
請高手指導一下
非常感謝各位的協助~~
檔案如連結https://www.sendspace.com/file/7hg64d
作者: soyoso (我是耀宗)   2015-02-04 22:26:00
文中有寫到[儲存格完全等於"Sales - Andy Collins"]但lookat卻為xlpart所以要問說是否檔案中儲存格A35及A100就不用處理嗎?
作者: nash30113 (賤王)   2015-02-04 22:31:00
sorry 都要處理 我只是用尋找的方式錄製巨集 再請大大指導一下
作者: soyoso (我是耀宗)   2015-02-04 22:42:00
作者: nash30113 (賤王)   2015-02-04 23:13:00
這個寫法似乎會連[Sales - Andy Collins - Riser Recl]只要有這個字串的都會變成"ACA" 不知道這有無辦法解決?soyoso非常感謝協助!!
作者: soyoso (我是耀宗)   2015-02-04 23:19:00
如上面所問A35及A100是否不用處理,而原po回覆都要處理來看,A35,A36,A100中都有字串"Sales - Andy Collins",因此這三格都會處理到那目前是否要完全符合的A36才要處理呢?
作者: nash30113 (賤王)   2015-02-04 23:24:00
是的 只有A36才需處理 我誤會你的意思 Sorry~~感謝解釋
作者: soyoso (我是耀宗)   2015-02-04 23:25:00
已修正,https://db.tt/YVT47SDo 請重下
作者: nash30113 (賤王)   2015-02-04 23:32:00
非常感謝! 程式碼差在Find(fStr(i), , xlValues, 1)
作者: soyoso (我是耀宗)   2015-02-04 23:33:00
是的,原本2(xlpart)改為1(xlwhole)
作者: nash30113 (賤王)   2015-02-04 23:34:00
1、2的差別是? 可以稍微跟我解說一下嗎? 感謝你的耐心!OK 我懂了!

Links booklink

Contact Us: admin [ a t ] ucptt.com