Excel vba查找和replace结束

我只能在最后更换变体。 我们可以这样做,如果有的话,请任何人都可以帮忙吗?

码:

Worksheets("Part_Number").Columns("F").Replace What:="-G", Replacement:=" ", SearchOrder:=xlByColumns, MatchCase:=True 

input:

 WA-2001-G WA-GSK024 

预期产出:

 WA-2001 WA-GSK024 

在你的What:="-G"你需要添加"space -G space"

假设这就是你想要做的

这里的例子

 Option Explicit Public Sub Example() With ThisWorkbook.Sheets("Part_Number").Range("F:F") .Replace " -G ", " ", xlPart End With End Sub 


WA-2001 -G WA-GSK024
对此
WA-2001 WA-GSK024


编辑如果没有空间,请使用此项

 Option Explicit Public Sub Example() Dim rng As Range With ThisWorkbook.Sheets("Part_Number") For Each rng In .Range("F1", Range("F99").End(xlUp)) If Right(rng.Value, 2) = "-G" Then Debug.Print rng.Value ' Immediate Window rng.Value = Mid(rng.Value, 1, Len(rng.Value) - 2) Debug.Print rng.Value ' Immediate Window End If Next End With End Sub 

这样做的一种方法是循环Column F和检查每个单元格中的最后两个字符为-G并删除(如果存在)。 请参阅下面的代码:

 Public Sub Demo() Dim lastRow, i As Long Dim myString As String Dim c As Range 'get the last row with data in Column `F` lastRow = Cells(Rows.Count, "F").End(xlUp).Row For Each c In ThisWorkbook.Sheets("Sheet1").Range("F1:F" & lastRow) If Len(c.Value) <> 0 Then If Right(c.Value, 2) = "-G" Then c.Value = Left(c.Value, Len(c.Value) - 2) End If Next c End Sub 

如果有什么不清楚,请告诉我。

或者你可以尝试这样的事情…

 Sub ReplaceStrings() Dim ws As Worksheet Dim lr As Long Set ws = Sheets("Part_Number") ws.Activate lr = Cells(Rows.Count, "F").End(xlUp).Row Range("F2:F" & lr).Value = Evaluate("If(Right(Trim(F2:F" & lr & "),2)=""-G"",Left(Trim(F2:F" & lr & "),Len(Trim(F2:F" & lr & "))-2),F2:F" & lr & ")") End Sub