【问题标题】:Remove or add text after a specific character in Excel在 Excel 中的特定字符之后删除或添加文本
【发布时间】:2017-10-10 01:13:28
【问题描述】:

我的 Excel 表中有很多数据,我想删除最后一个 (-) 字符之后的所有文本。 这是我的工作表中的示例数据

"This-is-car-44"
"This-is-my-school-ok"

我想要这样的

 "This-is-car"
 "This-is-my-school"

我想删除 lats - 之后的所有文本,所以他们的任何公式都是这样做的。 如果可能的话,还有一件事我可以在 excel 中这样做吗

 "This-is-car-44"
    "This-is-my-school-ok"

看起来像这样

  "This-is-car/"
    "This-is-my-school/"

我的意思是在最后 - 删除所有文本并在末尾添加 / 。 谢谢。

【问题讨论】:

  • 嗨,到目前为止,您尝试了什么?也许这会有所帮助。 stackoverflow.com/questions/43818241/…
  • @Moosli 嗨,感谢您的回复,我尝试了文本到列工具、搜索和替换工具、公式查找刺“但没有得到我想要的结果。尝试谷歌和其他论坛大量搜索但没有帮助我,我是 excel 新手,所以最后我在这里发布它可能会得到帮助。谢谢,但我不明白上面链接上给出的答案。谢谢
  • 好的。你有什么不明白?到目前为止,您尝试了什么?您也可以使用 Split() 方法
  • 另外,here's a non VBA answer 要获取字符串中的最后一个单词,您可以轻松地使用LEFT(A1, LEN(A1)-LEN(*last word in A1*)) 来获得所需的结果(其中A1 包含您的数据)

标签: vba excel


【解决方案1】:

如果你对excel公式没问题,请试试这个,

=SUBSTITUTE(A1,"-"&TRIM(RIGHT(SUBSTITUTE(A1,"-",REPT(" ",LEN(A1))),LEN(A1))),"/")

【讨论】:

  • @hardy 太好了!!如果您觉得这很有用,请点赞。
  • 是的,我试过了,但我的分数不足以支持投票。当我达到那个级别时,我肯定会投票。
  • @hardy 谢谢!!
  • 我不知道为什么有人对我的问题投反对票(否决票)。所以这降低了我的分数,当有人投票我的问题时,我得到了分数,如果我能够投票,我肯定会这样做。谢谢
【解决方案2】:

你可以这样做。

Sub RemoveLastStingPart()
Dim rng As Range
Dim intLastRow As Long
Dim strTemp As String
Dim aryTemp() As String




With ActiveSheet

    intLastRow = .UsedRange.Rows.Count
    Set rng = .Range(Cells(1, 1), Cells(intLastRow, 1))

    For Each cell In rng
        strTemp = cell.Value
        aryTemp = Split(strTemp, "-")
        strTemp = ""
        For i = 0 To UBound(aryTemp) - 1
            strTemp = strTemp & aryTemp(i) & "-"
        Next i
        strTemp = Left(strTemp, Len(strTemp) - 1)
        cell.Offset(0, 1).Value = strTemp
    Next cell


End With

End Sub

【讨论】:

  • 谢谢亲爱的,在运行大量数据之前的最后一个问题我想知道这可以在最后一个之后删除所有文本 - 或在最后一个添加 /。无论如何,再次感谢您的帮助
  • 它将在每个字符串中删除最后一个“-”之后的文本。如果要添加“/”,可以在将值写回单元格时添加它
猜你喜欢
  • 1970-01-01
  • 2021-12-06
  • 1970-01-01
  • 2022-12-31
  • 1970-01-01
  • 2019-12-13
  • 2021-12-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多