gpt4 book ai didi

vba - 如何从大量数据中删除特定字符

转载 作者:行者123 更新时间:2023-12-02 14:08:09 24 4
gpt4 key购买 nike

我正在清理一大堆充满符号字符的数据,例如。 !@%^&*|'~<>?·并想一次性将它们全部删除。下面的脚本似乎可以有效地执行此操作,但是它随后会删除工作簿的全部内容。

Sub Removeforeigncharacters()
Dim ForeignChars As String
Dim RegChars As String

ForeignChars = "!@%^&*|`~<>?·"
RegChars = ""
Set MyRange = ActiveSheet.UsedRange

Dim A As String * 1
Dim B As String * 1
Dim i As Integer

For i = 1 To Len(ForeignChars)
A = Mid(ForeignChars, i, 1)
B = Mid(RegChars, i, 1)
MyRange.Replace What:=A, Replacement:=B, LookAt:=xlPart, MatchCase:=False
Next
End Sub

最佳答案

What Range.Replace的参数使用*作为通配符,这意味着它将匹配每个字符(并且它们会替换它们)。请注意,从技术上讲,这不会删除字符,因为您使用的是固定长度字符串 - 它会用空格替换它们,因为代码...

B = Mid(RegChars, i, 1)

...总是会产生一个空格。

如果您需要搜索文字 *您需要转义它们,而不是通配符匹配:

  Dim A As String
Dim i As Integer

For i = 1 To Len(ForeignChars)
A = Mid(ForeignChars, i, 1)
If A Like "[~*?`]" Then A = "~" & A
MyRange.Replace What:=A, Replacement:=vbNullString, LookAt:=xlPart, MatchCase:=False
Next

(我可能错过了一些需要转义的内容)。

请注意,如果您这样做,则无法声明 A作为固定长度的字符串(无论如何确实没有令人信服的理由这样做)。

关于vba - 如何从大量数据中删除特定字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41451941/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com