对所有人都好。
我正在寻找能够从 excel 中的多个单元格中删除特殊字符的方法。
例如,从 A2:A50 替换所选单元格中的特殊字符。
例子:
H&*O^&@LA --> 你好
该函数最初不应通过宏执行。
那我怎么能替换特殊字符呢?
我有使用宏的想法,例如使用带有字符串的循环并在每个单元格中进行替换,但我不确定如何在没有宏的工作表中执行此操作。
我尝试过:=REPLACE("XYZ123",4,3,"456"),但 replace 要求替换位置。在这种情况下,我不知道要使用哪些职位。
PS:使用扩展不是解决方案。
谢谢。
Replace
如果我没记错的话,这个函数的作用是在 X 位置替换,但你要找的是SUSTITUIR
. 我解释:从你提出的这个例子中:
正确的函数是这样的(B2 是我在我的 excel 中的单元格):
但是,如何将此示例扩展到任何字符?
每个字符的替换:您必须为要过滤的每个字符创建一个函数,在这种情况下有 4 个。当您到达最后一个替换时,您创建原始函数,即搜索单元格
SUSTITUIR(B2;"&";"");
的函数.创建主函数后,无需重复调用单元格,因为它是嵌套的,所有其他函数都知道您在哪个单元格中,您只需要添加以下过滤器
"*";"")
;,"^";"");
和"@";"")
. 显然,如果您要尝试更改更多字符,等待您的是一项漫长的任务,您可以创建一个列表并从中获取值,直到您完成过滤器,这取决于您。恐怕您需要 VBA 以一种简单的方式解决它。不是这样的宏,但您可以创建一个 UDF,让您轻松清理您不关心的字符。
我设计了一个非常简单的 UDF,完全可定制:
这个 UDF 所做的是查看每个字符的 ASCII 码。通过 Select,我们可以选择允许哪些 ASCII 字符,不允许哪些。现在这个 UDF 只支持数字、不带重音符号的字母和字母 ñ。想象一下,你想清理 A1 中的文本,因为在 B1 中我们会写
=LIMPIAR_TEXTO(A1)
几个例子:
您只需要
Case 48 To 57, 65 To 90, 97 To 122, 164 To 165, 32
使用您想要允许的字符的 ASCII 代码来修改部分。您可以添加它允许换行符、逗号、括号、带重音符号的字母等。使其适应您的需求。