将列中的第一个空格替换为分隔字符



我有一个报告,它在一个单元格中包含一堆文本。文本的第一部分是产品#,但长度各不相同。产品编号与其他信息用空格隔开。

我想写一个宏,用分隔字符只替换第一个空格。我通常用"~"。这将允许我编写一个文本到列命令的脚本,该命令将在一列中隔离产品编号。

您可以使用以下公式:

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

把它抄下来。复制/粘贴特殊值。然后文本到结果的列

使用VBA,可以使用以下方法:

  • 找到第一个空字符串位置并将其写入变量
  • 将字符串的左侧部分移到该位置,并附加替换字符串
  • 将字符串的右侧部分从位置移到末尾,然后附加其余部分

这是函数:

Public Function ReplaceFirstSpace(myInput As String, _
Optional replacement As String = "~") As String
Dim position As Long
position = InStr(1, myInput, " ")
If position = 0 Then
ReplaceFirstSpace = myInput
Else
ReplaceFirstSpace = Left(myInput, position - 1) & _
replacement & Right(myInput, Len(myInput) - position)
End If
End Function

还有一些测试:

Sub TestMe()    
Debug.Print ReplaceFirstSpace("my name is")
Debug.Print ReplaceFirstSpace("slim shaddy")
Debug.Print ReplaceFirstSpace("tikitiki")
Debug.Print ReplaceFirstSpace(" taram")
Debug.Print ReplaceFirstSpace("tam ")
Debug.Print ReplaceFirstSpace("")    
End Sub

使用REPLACE:

=REPLACE(A1,FIND(" ",A1),1,"~")

相关内容

  • 没有找到相关文章

最新更新