看板 Office 關於我們 聯絡資訊
軟體: 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 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.24.176.60 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1423059286.A.79C.html
soyoso: 文中有寫到[儲存格完全等於"Sales - Andy Collins"] 02/04 22:26
soyoso: 但lookat卻為xlpart 02/04 22:28
soyoso: 所以要問說是否檔案中儲存格A35及A100就不用處理嗎? 02/04 22:29
nash30113: sorry 都要處理 我只是用尋找的方式錄製巨集 再請大大 02/04 22:31
nash30113: 指導一下 02/04 22:32
soyoso: https://db.tt/YVT47SDo 試試 02/04 22:42
nash30113: 這個寫法似乎會連[Sales - Andy Collins - Riser Recl] 02/04 23:13
nash30113: 只要有這個字串的都會變成"ACA" 不知道這有無辦法解決? 02/04 23:14
nash30113: soyoso非常感謝協助!! 02/04 23:15
soyoso: 如上面所問A35及A100是否不用處理,而原po回覆都要處理來 02/04 23:19
soyoso: 看,A35,A36,A100中都有字串"Sales - Andy Collins",因此 02/04 23:20
soyoso: 這三格都會處理到 02/04 23:20
soyoso: 那目前是否要完全符合的A36才要處理呢? 02/04 23:21
nash30113: 是的 只有A36才需處理 我誤會你的意思 Sorry~~感謝解釋 02/04 23:24
soyoso: 已修正,https://db.tt/YVT47SDo 請重下 02/04 23:25
nash30113: 非常感謝! 程式碼差在Find(fStr(i), , xlValues, 1) 02/04 23:32
soyoso: 是的,原本2(xlpart)改為1(xlwhole) 02/04 23:33
nash30113: 1、2的差別是? 可以稍微跟我解說一下嗎? 感謝你的耐心! 02/04 23:34
nash30113: OK 我懂了! 02/04 23:35