【发布时间】:2021-10-29 07:42:50
【问题描述】:
我创建了一个 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
【问题讨论】:
-
我认为将 Mid(strVal, i, 1) = " " 更改为 Mid(strVal, i, 1) = "" 不起作用?
-
将 Mid(strVal,i,1) = " " 替换为 Mid(strVal,i,1) = vbnullstring