excel 批量替换问提 A列有若干个单元格都有相同长度的字符,比如a1 123456,a...

来源:百度文库 编辑:神马文学网 时间:2024/06/12 05:53:25
自定义函数吧,使用起来简单快捷-------------------Public Function tihuan(iRng As Range, iStr As String, iPlc As String) As StringApplication.VolatileIf iRng.Count > 1 ThenTiHuan = "#1"  'iRng的单元格数量必须等于1Exit FunctionElseIf InStr(iStr, ",") ThenDim a: a = Split(iStr, ",")b = CStr(iRng.Value)For i = LBound(a) To UBound(a)If CInt(a(i)) < 0 Or CInt(a(i)) > Len(b) ThenTiHuan = b  '指定要替换的位置不在iRng的字符串范围内Exit FunctionEnd Ifb = Left(b, CInt(a(i)) - 1) & iPlc & Right(b, Len(b) - CInt(a(i)))NextTiHuan = bExit FunctionElseb = CStr(iRng.Value)If CInt(iStr) < 0 Or CInt(iStr) > Len(b) ThenTiHuan = b  '指定要替换的位置不在iRng的字符串范围内Exit FunctionEnd Ifb = Left(b, CInt(iStr) - 1) & iPlc & Right(b, Len(b) - CInt(iStr))TiHuan = bExit FunctionEnd IfEnd Function---------------把这段代码加入模块中,然后可以在单元格中用这个自编的公式,与正常的公式一样使用假设 A 列从 A1 开始是你的数字,在B列输入公式,向下填充即可=tihuan(A1,"2,3,5","*")---------------公式使用说明:tihuan(iRng,iStr,iPlc)功能:将单元格(iRng)字符串内的,指定位置(iStr)的字符,替换为某个字符(iPlc)参数:iRng 指定单元格如:A1iStr 指定替换字符的位置,多个位置用英文逗号(,)隔开,放入英文引号("")内如:"4"    "2,3,5,7"iPlc 替换为某个字符,放入英文引号("")内如:"*"示例:=tihuan(A1,"2,3,5","*")=tihuan(A3,"2","*")=tihuan(A1,"5,7","*")=tihuan(A1,"2,3,5,7","*")-------------代码加入模块的方法:Alt + F11 键,进入VBA编辑器。右击左边的“Microsoft Excel 对象”,在弹出的菜单中点击“插入”-“模块”。双击模块,在右边把以上代码复制进去。保存。就可以使用这个自定义函数 tihuan() 了。 

回答者: sxpos