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