[算表] 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