【发布时间】:2020-06-23 08:24:34
【问题描述】:
我有一个需要清理的地址列表。
目标是在数字前添加一个空格,如下例所示。
16AVCHARLESDAGAULLECS10525 16 Avcharlesdagaullecs 10525
1BDHIPPOLYTEMARQUES 1 Bdhippolytemarques
20GARRICKSTREET4THFLOOR 20 Garrickstreet 4Thfloor
2109ZAC 2109 Zac
2-4VANDRIESSTREET4 2-4 Vandriesstreet 4
5:ETVÄRG.19.E 5:Etvärg. 19.E
901ACEHIGHENTTOWE9TH233 901 Acehighenttowe 9Th 233
我找到了一个在字母之间放置空格的脚本,但这不是我的目标。这是我到目前为止的代码。 它没有给出上面的结果。
Function Add_Spaces(ByVal sText As String) As String
Dim CharNum As Long
Dim FixedText As String
Dim CharCode As Long
FixedText = Left(sText, 1)
For CharNum = 2 To Len(sText)
CharCode = Asc(Mid(sText, CharNum, 1))
If CharCode >= 65 And CharCode <= 90 Then
FixedText = FixedText & " " & Mid(sText, CharNum, 1) 'This needs to be rewritten
Else
FixedText = FixedText & Mid(sText, CharNum, 1)
End If
Next CharNum
Add_Spaces = FixedText
End Function
你知道我该如何解决这个问题吗?
这里是一个正则表达式的解决方案,可能会提供线索:R separate words from numbers in string
【问题讨论】:
-
啊,当街道名称中有数字时,这会变得特别有趣,例如 main 42nd street :)
-
^^ 即使使用
Ä强调的大写字符也可能对下面的某些答案(取决于它们的位置)造成麻烦=) -
你能解释一下为什么不在
5 :ETVÄRG. 19 .E后面加空格。是否还有其他例外,例如` : `? -
您能否解释一下为什么在示例#3
4THFLOOR中的TH之后没有添加空格?
标签: excel vba data-cleaning