嘿,我有一张 sheet1,其中包含 A 列中的搜索模式列表,以及 B 列中相应的类别名称列表。我有一张 sheet2,其中包含我的银行交易的各种描述列表。
例如,在表 1 中,我有杂货、燃料、娱乐、储蓄,在表 2 中,我有“壳牌服务站、abc 路”、“Coles 超市”等。
我想在交易列中查找单词,然后将找到的行替换为类别..
例如。如果我在 Sheet2 中找到“Shell”这个词,我想用“Fuel”这个词替换该行
到目前为止,我已经完成了这项工作,但我不认为这是最有效或最有效的方法。下面是我的代码。
Sub UpdateCats()
Dim x As Integer
Dim FindString As String
Dim ReplaceString As String
Dim NumRows As Integer
'Replace and update Categories
With Sheets("Categories")
    .Activate
  ' Set numrows = number of rows of data.
  NumRows = Range("A2", Range("A2").End(xlDown)).Rows.Count
  ' Select cell a1.
  Range("A2").Select
  ' Establish "For" loop to loop "numrows" number of times.
  For x = 1 To NumRows
     FindString = ActiveCell.Value
     ActiveCell.Offset(0, 1).Select
     ReplaceString = ActiveCell.Value
     ActiveCell.Offset(1, -1).Select
     With Sheets("Data")
        .Activate
        'With Columns(2)
        Cells.Replace What:=FindString, Replacement:=ReplaceString, LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False
        'End With
     End With
     Sheets("Categories").Activate
  Next
End With
End Sub
到目前为止我不喜欢我的代码的原因是因为它在循环中运行时必须不断地在工作表之间切换(激活)。有没有办法更好地做到这一点?