gpt4 book ai didi

excel - 从 VBA 中的范围中删除特殊字符

转载 作者:行者123 更新时间:2023-12-04 19:51:34 29 4
gpt4 key购买 nike

我创建了一个 VBA 代码来删除列中所有可用的特殊字符。例如,我在一列的每个单元格中都有一个字母数字字符和一些特殊字符:假设在一个单元格中我有一个值:abc@123!-245执行我的代码后,我得到输出 abc 123 245在这里,我的代码可以很好地删除所有特殊字符。我的代码如下:

Sub ReplaceSpecial()
Dim cel As Range
Dim strVal As String
Dim i As Long
Application.ScreenUpdating = False
For Each cel In Selection
strVal = cel.Value
For i = 1 To Len(strVal)
Select Case Asc(Mid(strVal, i, 1))
Case 32, 48 To 57, 65 To 90, 97 To 122
' Leave ordinary characters alone
Case Else
Mid(strVal, i, 1) = " "
End Select
Next i
cel.Value = strVal
Next cel
Application.ScreenUpdating = True
End Sub

现在,如果我想删除输出的空间,使输出看起来像 abc123245,如何在 VBA 中执行此操作?输入:abc@123!-245当前输出:abc 123 245所需输出:abc123245

最佳答案

您可以只使用允许的字符构造一个新字符串。

Sub ReplaceSpecial()
Dim cel As Range
Dim strVal As String, temp As String
Dim i As Long
Application.ScreenUpdating = False
For Each cel In Selection
strVal = cel.Value
temp = vbNullString
For i = 1 To Len(strVal)
Select Case Asc(Mid(strVal, i, 1))
Case 32, 48 To 57, 65 To 90, 97 To 122
temp = temp & Mid(strVal, i, 1)
End Select
Next i
cel.Value = temp
Next cel
Application.ScreenUpdating = True
End Sub

关于excel - 从 VBA 中的范围中删除特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68986071/

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