按规则的批量替换
创始人
2025-07-12 18:39:52
0次
按规则的批量替换
这个估计要采用VBA编程来循环所有单元格按指定的规则对一个一个的单元格一次性替换完成,如果用一般的替换,会造成重复替换,得不到预期的结果的。
思路:读取一个单元格中的字符串,然后判断该字符串的长度,然后将该字符串中一个一个的字符分离出来,然后对字符进行判断,按照指定的规则进行替换,完毕后,将该新的字符组合得到替换后的新字符串再来赋值给该单元格,如此反复处理每一个单元格即可。
单击工具-宏,新建一个宏名,单击创建,然后复制如下代码并自己修改一下即可:
Dim str As String
For c = 1 To n 'n指代的是该表中该类数据所在列的最大列数,自己按实际情况修改,默认从第1列开始
For r = 1 To m 'm指代的是该表中该类数据所在行的最大行数,自己按实际情况修改,默认从第1行开始
nstr = Len(Cells(r, c).Text)
For i = 1 To nstr
strtmp = Mid(Cells(r, c).Text, 1, 1)
Select Case strtmp
Case "a"
strtmp = "b"
Case "b"
strtmp = "n"
Case "c"
strtmp = "v"
Case "g"
strtmp = "z"
Case "r"
strtmp = "o"
Case "h"
strtmp = "s"
'在这里把你的替换规则按上面的形式补充完整
End Select
str = str + strtmp
Next i
Cells(r, c).Value = str
str = ""
strtmp = ""
Next r
Next c
普通查找替换为什么不行? 把换的顺序换一下不就行了?
先换a再换b有此重复替换问题,可以先换b再换a嘛,实在是有交替换的情况还可以先临时把一个换成一个替换区域不存在的字符,最后再把它换正常。
从后面开始换
方法很多的//楼上说的也对
给你说个最简单的且不会错的原理[手动也行,最好录制个宏]。[因为不确定你26个字母都用,所以就当你26个字母都用吧,用100个不同字母都行]
1首先需要分列。保证每个字母在一个单元格内
2把26个字母对应到数字1-26
先替换成目标字母对应的数字
再全部替换回字母
最后再合并一起//
中间的替换步骤还是录个宏吧。会省点时间。
相关内容