如何从string中删除所有非字母数字字符,除了期间和空间在Excel中?

我需要删除除Excel中的句点和空格以外的string中的所有非字母数字字符。 使用VBA而不是纯粹的Excelfunction的解决scheme就好了。

将此函数插入​​到Visual Basic编辑器中的新模块中:

Function AlphaNumericOnly(strSource As String) As String Dim i As Integer Dim strResult As String For i = 1 To Len(strSource) Select Case Asc(Mid(strSource, i, 1)) Case 48 To 57, 65 To 90, 97 To 122: 'include 32 if you want to include space strResult = strResult & Mid(strSource, i, 1) End Select Next AlphaNumericOnly = strResult End Function 

现在,您可以将其用作用户定义函数,即如果您的数据位于单元格A1 ,请将此公式放置在空白单元格中=AlphaNumericOnly(A1)

如果要直接转换大范围,即在不离开源代码的情况下replace所有非字母数字字符,则可以使用另一个VBA例程执行此操作:

 Sub CleanAll() Dim rng As Range For Each rng In Sheets("Sheet1").Range("A1:K1500").Cells 'adjust sheetname and range accordingly rng.Value = AlphaNumericOnly(rng.Value) Next End Sub 

只需将该子文件放在同一个模块中并执行即可。 但请注意,这将取代范围内的任何公式。