Excelmacros无法分离string地址

软件: MS Excel 2016


更新1

请注意,在West之前可以有任意数量的数字,

123124234234West18th Street

2West 14th Avenue

12324West

请协助解决一般问题



原来的问题

有地址, 31West 52nd Street我想分裂31West所以输出将是

31 West 52nd Street

尝试了这个macros观声明,但它不会工作,请指导

Selection.Replace What:="?@West ", Replacement:=" West " _ , LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat _ :=False, ReplaceFormat:=False

这是一个代码示例,将检查前几个字符。 如果他们是数字,如果将他们与其余的空间分开:

 Option Explicit Public Sub TestMe() Debug.Print fnStrStripMyNumber("31West 52nd Street") Debug.Print fnStrStripMyNumber("123Vityata Shampion") End Sub Public Function fnStrStripMyNumber(strStr As String) As String Dim lngCountDigits As Long Dim lngCounter As Long strStr = Trim(strStr) For lngCounter = 1 To Len(strStr) If IsNumeric(Mid(strStr, lngCounter, 1)) Then lngCountDigits = lngCountDigits + 1 Else Exit For End If Next lngCounter strStr = Left(strStr, lngCountDigits) & " " & Right(strStr, Len(strStr) - lngCountDigits) fnStrStripMyNumber = Trim(strStr) End Function 

因此,从input:

 "31West 52nd Street" "123Vityata Shampion" 

我们得到输出:

 31 West 52nd Street 123 Vityata Shampion 

你也可以试试这个excel公式,

 =LEFT(A1,FIND("West",A1)-1)&" "&RIGHT(A1,LEN(A1)-FIND("West",A1)+1) 

在这里输入图像说明

或者如果你只想要一个macros,

 Sub rep() Range("B1") = Replace(Range("A1"), "West", " West") End Sub