MS Excel 查找和替换宏

MS Excel 查找和替换宏

我编写了一个宏,用于根据 ASCII 值删除工作表中的特殊字符,但问题是它会替换单元格内容。例如,p;j;h应该变成的内容p,j,h变成了,,(缺少数据)。我需要添加任何其他语句吗?或者如何调整我的代码?

sub specialcharecters()

Dim i As Long

For i = 32 To 43
    Selection.Replace what:=Chr(i), replacement:=", ", LookAt:=xlPart, SearchOrder:= _
       xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Next i

     END sub

答案1

我逐行检查了您的代码,发现罪魁祸首是Chr(42),它对应于*符号。当 Excel 遇到它时,它会将其视为通配符并替换所有文本。如果您添加一个简单的 if 语句来跳过 42,它会通过第一个For循环而不会导致观察到的问题。您需要对Chr(63)?)再次执行此操作,否则它会再次给出奇怪的输出。一旦考虑到这两个因素,它对我来说就很好了。

相关内容