首页 > 解决方案 > 使用 Excel VBA 查找和替换文本

问题描述

我有一个每天都有订单信息的文件。供应商发送我不想包含的字体代码。我正在尝试删除字体代码:

它是这样进来的:

个性化:
J#616
BTS#P47
Tim#P46
Tailored Night*#none
Macy#P46 Frank#P46

我希望结果如下所示:

个性化:
J
BTS
Tim
Tailored Night
Macy Frank

这是代码:

Dim sht As Worksheet
Dim fndList As Variant
Dim rplcList As Variant
Dim x As Long

fndList = Array("#616", "#P46", "#P47", "#none")
rplcList = Array("", "", "", "")

For x = LBound(fndList) To UBound(fndList)
    For Each sht In ActiveWorkbook.Worksheets
        sht.Cells.Replace What:=fndList(x), Replacement:=rplcList(x), _
          LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
          SearchFormat:=False, ReplaceFormat:=False
    Next sht
Next x

我没有收到任何错误,但没有对文本进行任何更改。

标签: excelvbareplacefind

解决方案


我建议您不要在绝对不需要时使用 ActiveWorkbook。

既然您知道工作簿的名称,请声明并使用它。

Dim wb as Workbook
Set wb = Workbooks("name_of_your_workbook")

然后使用变量'wb'代替ActiveWorkbook,例如

For Each sht In wb.Worksheets

祝你好运


推荐阅读