簡體   English   中英

如何刪除單元格中第一個空格后的所有字符?

[英]How do I delete all characters after the first space in a cell?

我有一個城市名稱列表,后跟 state,它們都位於 Excel 的一列中。 如何刪除第一個空格之后的所有內容,以便城市名稱是單元格中唯一剩下的內容?

示例:A1 = “約翰遜 TX”
應該只是 A1="johnson"

我假設您想要一個 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 的答案可以正常工作,盡管這個更簡潔並且不保留尾隨空格字符:

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

做這樣的事情很好

=Mid(A1, 1, Find(" ",A1))

在另一列中應該抓取“”之前的所有文本。 因此,您可以構建另一個僅包含所有城市名稱的列,然后您可以將該列用於您的目的。

如果您正在尋找 VBA function,您可以使用LeftInStr ,如下所示。

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

在這種情況下, Temp將是"Hello_World!"

使用Split體 function

一種優雅的方法是使用Split function 的第一個令牌:

從單元格 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" ,如果兩者之間根本沒有分隔符,因此根本沒有第二部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM