Note: The other languages of the website are Google-translated. Back to English

如何在Excel中一次查找和替换多个值?

doc多查找替换1

众所周知,我们可以使用“查找和替换”功能来查找多个相同的单元格,并根据需要用值替换它们。 但是有时,您需要同时应用多对多替换。 例如,我有一系列数据,现在我想将所有的Apple替换为Red Apples,将Oranges替换为Green Oranges,将Bananas替换为Yellow Bananas,依此类推,如下面的屏幕截图所示,您是否有解决此任务的好主意? Excel?

使用VBA代码一次查找并替换多个值


箭头蓝色右气泡 使用VBA代码一次查找并替换多个值

如果您厌倦了一次又一次地查找和替换值,下面的VBA代码可以帮助您立即用所需的文本替换多个值。

1。 请创建包含原始值和新值的要使用的条件。 看截图:

doc多查找替换2

2。 然后按住 ALT + F11 键打开 Microsoft Visual Basic for Applications窗口。

3。 点击 插页 > 模块,然后将以下代码粘贴到“模块”窗口中。

VBA代码:一次查找并替换多个值

Sub MultiFindNReplace()
'Updateby Extendoffice
Dim Rng As Range
Dim InputRng As Range, ReplaceRng As Range
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Original Range ", xTitleId, InputRng.Address, Type:=8)
Set ReplaceRng = Application.InputBox("Replace Range :", xTitleId, Type:=8)
Application.ScreenUpdating = False
For Each Rng In ReplaceRng.Columns(1).Cells
    InputRng.Replace what:=Rng.Value, replacement:=Rng.Offset(0, 1).Value
Next
Application.ScreenUpdating = True
End Sub

4。 然后按 F5 键以运行此代码,请在弹出的提示框中,指定要用新值替换值的数据范围。

doc多查找替换3

5。 点击 OK,并显示另一个提示框,提醒您选择在步骤1中创建的条件。请参见屏幕截图:

doc多查找替换4

6。 然后点击 OK,所有特定值均已根据需要立即用新值替换。

doc多查找替换5


相关文章:

如何查找和替换文本框中的特定文本?

如何在Excel中的图表标题中查找和替换文本?

如何在Excel中的注释中查找和替换文本?

如何在Excel中一次更改多个超链接路径?


最佳办公效率工具

Kutools for Excel解决了您的大多数问题,并使您的生产率提高了80%

  • 重用: 快速插入 复杂的公式,图表 以及您以前使用过的任何东西; 加密单元 带密码 创建邮件列表 并发送电子邮件...
  • 超级公式栏 (轻松编辑多行文本和公式); 阅读版式 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 不会丢失数据; 拆分单元格内容; 合并重复的行/列...防止细胞重复; 比较范围...
  • 选择重复或唯一 行; 选择空白行 (所有单元格都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择...
  • 确切的副本 多个单元格,无需更改公式参考; 自动创建参考 到多张纸; 插入项目符号,复选框等...
  • 提取文字,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级滤镜 (将过滤方案保存并应用于其他工作表); 高级排序 按月/周/日,频率及更多; 特殊过滤器 用粗体,斜体...
  • 结合工作簿和工作表; 根据关键列合并表; 将数据分割成多个工作表; 批量转换xls,xlsx和PDF...
  • 超过300种强大功能。 支持Office / Excel 2007-2019和365。支持所有语言。 在您的企业或组织中轻松部署。 完整功能30天免费试用。 60天退款保证。
kte选项卡201905

Office选项卡为Office带来了选项卡式界面,使您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
officetab底部
按评论排序
注释 (127)
还没有评分。 成为第一位评论!
该评论由网站上的主持人最小化
这对我不起作用。 我正在使用 Excel 2010。它提示我输入原始范围,然后新范围失败,没有任何消息。 什么都没有被替换。 我将继续寻找一种方法来做到这一点。
肯龙
该评论由网站上的主持人最小化
请无视我最后的评论。 我做错了。 效果很好!
肯龙
该评论由网站上的主持人最小化
[quote]请忽略我最后的评论。 我做错了。 效果很好!作者:肯龙[/quote] 这对我不起作用。 你怎么做错了。 我对VBA的了解为零。
科里
该评论由网站上的主持人最小化
嗨,我尝试使用此宏来转换测量值。 要翻译的线: 珠子大约测量: 11/16 英寸宽 替换值: 1/32 0,794 毫米 1/16 1,588 毫米。 . . 11/16 17,463 毫米。 . . 1/1 25,400 毫米 结果线: 珠子尺寸大约: 11,588 毫米英寸宽是错误的 问题: 代码使用 1/16 中的值并替换它 我该如何解决这个问题? (如果我在另一个宏中使用 LookAt:=xlWhole 我不会得到任何结果)
马库斯
该评论由网站上的主持人最小化
嗨 谢谢 我可以让它区分大小写吗?
莫哈杰勒
该评论由网站上的主持人最小化
天哪,我在这里见证耶稣!!
贝尼
该评论由网站上的主持人最小化
嗨,我尝试使用此代码将多个数字替换为相应的文本。 我有一个范围从 1 -> 112000 的大型数据集,但是当我尝试将 1 转换为其相应的字符串值(例如 Apple)时,它会将其转换为列中的每个数字 1。 因此 112000 将输出为 AppleAppleOrange000。 在这个 Kutools 过程中有没有办法,比如 excel 中的查找/替换工具,来查找/替换特定的匹配案例?
杰克
该评论由网站上的主持人最小化
您需要添加以下参数: MatchCase:=True 例如,将其添加到以下行: InputRng.Replace what:=Rng.Value, replacement:=Rng.Offset(0, 1).Value, MatchCase:= True 这将仅查找并替换在您选择的范围内匹配大小写的项目。
汤姆
该评论由网站上的主持人最小化
你能重写代码以确保我们做对了吗?
特丽莎
该评论由网站上的主持人最小化
它对我不起作用,请帮助重写代码
特丽莎
该评论由网站上的主持人最小化
有没有办法将原始范围默认为“Tab1”!$4:$42
JD
该评论由网站上的主持人最小化
像魅力一样工作! 感谢您的代码和详细说明...您节省了我的两天时间...上帝保佑!
卡尔蒂克
该评论由网站上的主持人最小化
原始格式: 1 in ID X 2-1/2 in OD X 40 in 长度 1 in ID X 2-1/2 in OD X 10 in 长度 1 in ID X 2-1/2 in OD X 20 in 长度 1 in ID X 2-1/2 in OD X 10 in Length 9-1/2 in ID X 14 in OD X 12 in 长度 要求格式:ID 1 x OD 2-1/2 x LG 40 IN ID 1 x OD 2- 1/2 x LG 10 IN ID 1 x OD 2-1/2 x LG 20 IN ID 1 x OD 2-1/2 x LG 10 IN ID 9-1/2 x OD 14 x LG 12 请告诉我表格给定的示例,如何在 Excel 中将原始格式替换为所需格式
杰加迪兹
该评论由网站上的主持人最小化
谢谢它帮助了我
该评论由网站上的主持人最小化
宏不适用于完全匹配。 就像有两个类别 ABC 和 ABC 2。用 RRR 查找并替换 ABC 并将 ABC 2 替换为 TTT,因此 Macro 会将 ABC 2 更改为 RRR 2 而不是 TTT。
该评论由网站上的主持人最小化
首先将 ABC 2 替换为 TTT,然后将 ABC 替换为 RRR
公羊
该评论由网站上的主持人最小化
在“原始范围”下,您会显示 $A$2:$A$10,这表明它在一张纸内。 如何在这里选择整个工作簿?
沙莱拉
该评论由网站上的主持人最小化
哇!!! 非常感谢! 像宝石一样工作。
斯威塔
该评论由网站上的主持人最小化
像魅力一样工作! 非常感谢 :D (Y)
基兰拉曼纳耶
该评论由网站上的主持人最小化
我用上面的代码替换了数字,但是 11 和 1 都被替换了。
杜希扬斯
该评论由网站上的主持人最小化
Sub MultiFindNReplace() 'Update 20140722 Dim Rng As Range Dim InputRng As Range, ReplaceRng As Range xTitleId = "KutoolsforExcel" Set InputRng = Application.Selection Set InputRng = Application.InputBox("Original Range", xTitleId, InputRng.Address, Type: =8) Set ReplaceRng = Application.InputBox("Replace Range :", xTitleId, Type:=8) Application.ScreenUpdating = False For Each Rng In ReplaceRng.Columns(1).Cells InputRng.Replace what:=Rng.Value,替换:=Rng.Offset(0, 1).Value,看:=xlwhole Next Application.ScreenUpdating = True End Sub
mmg1
该评论由网站上的主持人最小化
是的!! 谢谢你的代码,它就像一个魅力
肯尼斯
该评论由网站上的主持人最小化
当尝试用数据透视表中的其他数值替换一列数值时,这也不起作用。 这就是我试图在 Excel 垃圾中做简单的自动化工作所得到的。
精益求精
该评论由网站上的主持人最小化
感谢你。 它工作得很好。
贾伊拉姆
该评论由网站上的主持人最小化
我有同样的问题,如果 2 个名称相似,例如,如果我想用 1 替换 TEACHER,用 2 替换 TEACHER ASSIST,它将用 1 替换 TEACHER,用 1 ASSIST 替换 TEACHER ASSIST。 我将如何获得它来替换 EXACT 短语?
斯科特
该评论由网站上的主持人最小化
非常感谢。 它非常有用,为我节省了 1 小时的劳动
苏尼尔·辛格尔
该评论由网站上的主持人最小化
我有两列,第一列是数字 1.... 1,2,3,... 第二列的字符串列表。 而不是用字符串值替换 22,23 的值。 它用 12 和 1 的字符串替换它。有人知道如何排序吗?
沙夫
该评论由网站上的主持人最小化
我有 3 列如下,1 万用表 2 测试灯 3 欧姆表 4 电阻测试仪 5 故障回路 12 RCD 测试仪 24 便携式 RCD 13 延长线 第三列的编号为 1,2...50。 大约有36000行。 它将 12 替换为第 1 行和第 2 行中的值而不是 12。 Anyonw 知道如何解决它吗?
沙夫
这里还没有评论
加载更多
留下你的意见
以访客身份发帖
×
评价此帖子:
0  产品特性
建议地点