我发现以下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
答案 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