当我使用[删除字符] [1]中的代码时,它正常工作吧Ascii45是一个破折号 - 。 Excel告诉我Ascii代码是45 (= Code(cellref))然而我发现数据从2016-01-31到2016年1月31日但是该列没有格式化。我是否必须重新格式化所有列之后或Excel显示错误的Ascii。
完整代码
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 33, 35 To 38, 40 To 41, 43, 45 To 47, 48 To 57, 65 To 90, 92, 97 To 122, 123 To 126, 32: 'include 32 if you want to include space
strResult = strResult & Mid(strSource, i, 1)
End Select
Next
AlphaNumericOnly = strResult
End Function
Sub CleanAll()
Dim rng As Range
For Each rng In Sheets("uploadsheet").Range("A1:AY5").Cells 'adjust sheetname and range accordingly
rng.Value = AlphaNumericOnly(rng.Value)
Next
'http://www.asciitable.com/
'http://stackoverflow.com/questions/15723672/how-to-remove-all-non-alphanumeric-characters-from-a-string-except-period-and-sp?lq=1
End Sub
[1]: http://stackoverflow.com/questions/15723672/how-to-remove-all-non-alphanumeric-characters-from-a-string-except-period-and-sp?lq=1
我目前在运行后添加了以下代码,但我想让它在一个代码中运行...
uploadsheet.Range("A2", "A50000").NumberFormat = "yyyy-mm-dd"
答案 0 :(得分:1)
替换:
rng.Value = AlphaNumericOnly(rng.Value)
使用:
rng.Value = "'" & AlphaNumericOnly(rng.Value)