我有一個城市名稱的列表,後面跟着它們所在的狀態,它們都位於Excel的一列中。如何刪除第一個空格後的所有內容,以便城市名稱是單元格中剩下的唯一內容?如何刪除單元格中第一個空格後的所有字符?
例如:A1 = 「約翰遜TX」
應該只是A1 = 「約翰遜」
我有一個城市名稱的列表,後面跟着它們所在的狀態,它們都位於Excel的一列中。如何刪除第一個空格後的所有內容,以便城市名稱是單元格中剩下的唯一內容?如何刪除單元格中第一個空格後的所有字符?
例如:A1 = 「約翰遜TX」
應該只是A1 = 「約翰遜」
我假設你想要一個VBA解決方案,因爲你標記了你的問題excel-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)
好做這樣的事情
=Mid(A1, 1, Find(" ",A1))
另一列應該抓住所有文字之前的「 」。因此,您可以用所有城市名稱構建另一列,然後您可以將該列用於您的目的。
如果您正在尋找VBA功能,您可以使用Left
和InStr
,如下所示。
Dim Temp As String: Temp = "Hello_World! This is my first answer here. :D"
Temp = Left(Temp, InStr(Temp, " ")-1)
在這種情況下,Temp
將"Hello_World!"
使用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)
注
所得分裂一維數組是基於零,所以你得到原始字符串的第一部分(或標記)通過索引(0)
。
如果您正在尋找第二部分,我建議在原始字符串中添加一個額外的分隔符值(「」),例如, s
:MsgBox split(s & " "," ")(1)
。通過這種方式,如果根本沒有分隔符,那麼就避免了錯誤號9 "Subscript out of range"
,因此根本沒有第二部分。