如何删除单元格中第一个空格后的所有字符?

时间:2011-04-29 14:06:49

标签: excel vba excel-vba excel-2007

我有一个城市名称列表,后面跟着它们在Excel中的一列中所处的状态。如何删除第一个空格后的所有内容,以便城市名称是单元格中唯一剩下的内容?

示例:A1 =“johnson TX”
应该只是A1 =“johnson”

4 个答案:

答案 0 :(得分:11)

我认为您需要VBA解决方案,因为您标记了问题

这有效:

Sub KeepCity()
    Dim strCityAndState As String
    Dim strCityOnly As String
    strCityAndState = Range("A1").Value
    strCityOnly = Left(strCityAndState, InStr(strCityAndState, " ") - 1)
    Range("A2").Value = strCityOnly
End Sub

如果您不想要VBA并且想要一个单元格公式,那么@JToland's answer works fine,虽然这个更简洁并且不保留尾随空格字符:

=LEFT(A1, FIND(" ",A1)-1)

答案 1 :(得分:6)

做这样的事情

=Mid(A1, 1, Find(" ",A1))
另一列中的

应该在之前获取所有文本。“因此,您可以使用所有城市名称构建另一个列,然后您可以将该列用于您的目的。

答案 2 :(得分:0)

如果您正在寻找VBA功能,可以使用LeftInStr,如下所示。

Dim Temp As String: Temp = "Hello_World! This is my first answer here. :D"
Temp = Left(Temp, InStr(Temp, " ")-1)

在这种情况下,Temp将为"Hello_World!"

答案 3 :(得分:0)

使用Split功能

优雅的方法是使用Split函数的第一个标记:

代码示例从单元格A1提取到A2

Option Explicit

Sub KeepCity()
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("MySheet")   ' << Change to your sheet name
    ws.[A2] = Split(ws.[A1], " ")(0)
End Sub

替代语法

您也可以使用:

代替单元格缩写[A2][A1]
ws.Range("A2").Value = Split(ws.Range("A1").Value, " ")(0)

注意

生成的拆分1维数组基于零,因此您可以通过索引(0)获取原始字符串的第一部分(或标记)。

如果您正在寻找第二部分,我建议在原始字符串中添加一个额外的分隔符值(&#34;&#34;),例如: sMsgBox split(s & " "," ")(1)。通过这种方式,如果根本没有分隔符,则可以避免错误编号9 "Subscript out of range",因此根本没有第二部分。