删除特定字符后的字符串

时间:2016-05-31 16:11:39

标签: excel vba excel-vba

我发现以下function会在指定字符之前删除任何字符

但是,我想这样做是为了删除指定字符后的所有字符

请你帮我解决这个问题。

Sub RemoveAllButLastWord()
'Updateby20140612
Dim Rng As Range
Dim WorkRng As Range
Dim xChar As String
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
xChar = Application.InputBox("String", xTitleId, "", Type:=2)
For Each Rng In WorkRng
    xValue = Rng.Value
    Rng.Value = VBA.Right(xValue, VBA.Len(xValue) - VBA.InStrRev(xValue, xChar))
Next
End Sub

2 个答案:

答案 0 :(得分:1)

像这样的东西

我收紧了原始代码

Sub RemoveAllFirstLastWord()
Dim Rng As Range
Dim WorkRng As Range
Dim xChar As String
Dim lngPos As Long

Set WorkRng = Application.InputBox("Range", "KutoolsforExcel", Selection.Address, Type:=8)
xChar = Application.InputBox("String", xTitleId, "", Type:=2)

For Each Rng In WorkRng
    lngPos = InStr(Rng.Value, xChar)
    If lngPos > 0 Then Rng.Offset(0, 1).Value = Left$(Rng.Value, lngPos - 1)
Next

End Sub

答案 1 :(得分:0)

我不明白你提供的代码中发生的一切,但对我来说似乎过于复杂。如果我理解正确,您希望遍历范围中的每个单元格,并删除特定字符后出现的单元格中的所有内容。我就是这样做的:

:user_information