excel - 使用 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
我没有收到任何错误,但没有对文本进行任何更改。
解决方案
我建议您不要在绝对不需要时使用 ActiveWorkbook。
既然您知道工作簿的名称,请声明并使用它。
Dim wb as Workbook
Set wb = Workbooks("name_of_your_workbook")
然后使用变量'wb'代替ActiveWorkbook,例如
For Each sht In wb.Worksheets
祝你好运
推荐阅读
- javascript - 延迟输入变化角度
- javascript - 制作数组组时 .push() 的困难
- java - 如何使在运行 Activiti Modeller 时,在我的应用程序中,计时器之后的任务和脚本任务服务不会导致错误?
- javascript - 将 Supertest 与 Mocha 结合使用,并具有一致的基本 api url
- sql - 将红移列拆分为多列
- angular - 如何在 AngularFire Observable 中引发错误
- php - 如果下一个字符是空格或大写字母字符,PHP 按点分解字符串
- if-statement - 使用 vuejs 中的方法的条件 @click
- c# - 覆盖特定的操作过滤器
- jquery - 剑道网格导出 excel 删除末尾的空白:剑道版本是 2016.2.714