Excel查找和;替换宏

时间:2014-12-13 10:29:50

标签: excel vba excel-vba

我有一个导入我所有订单的工作表,但是在创建标签时,我只有有限的空间用于标题。我正在使用Find&替换Excel中的宏,它查找当前活动的导入工作表,并替换为另一个工作表中的文本,我用作具有2列的表,列A是导入时的标题,列B是我想要将其更改为。此脚本工作正常,但它找不到具有不同开头的列。例如:

导入的工作表:

参赛作品1:BANANAS

条目2:30 X BANANAS

表:

A栏:BANANAS

B栏:黄香蕉

//脚本运行//

输出: 导入的工作表:

条目1:黄香蕉

条目2:30 X BANANAS

正如您在上面的示例中所看到的,“30 X BANANAS”条目不会更改为“30 X Yellow Bananas”,正如我希望的那样。我猜我需要在下面的脚本中添加一个通配符代码行,但我不确定如何合并它?

Sub FindReplace()
  Dim s As String
  Dim cell As Range
  For Each cell In Range("H3:H5000").Cells
    If cell <> "" Then
      ans = Application.VLookup(cell, Sheets("Script").Range("A1:B1000"), 2, 0)
      If Not IsError(ans) Then cell = ans
    End If
  Next cell
End Sub

1 个答案:

答案 0 :(得分:0)

如果您使用Range.Replace功能而不是VLookup功能,您将获得所需的结果。

enter image description here

enter image description here

Sub FindNReplace()
Dim InputRng As Range, ReplaceRng As Range

'Set Range Values
Set InputRng = Range("A1:A5")
Set ReplaceRng = Sheets("Script").Range("A1:B100")

'Spin through replacement range and perform replace
For Each Rng In ReplaceRng.Columns(1).Cells
    InputRng.Replace what:=Rng.Value, replacement:=Rng.Offset(0, 1).Value
Next
End Sub