本文作者:office教程网

excel工作簿所有工作表中的多值替换

office教程网 2023-12-08 07:30:42
后台-系统设置-扩展变量-手机广告位-内容正文顶部
摘要: 有两个工作簿,一个工作簿中存放着要查找并替换成的文本,如下图1所示,列A中是要查找的文本,将列A中查找到的文本替换成列B中相应的文本,例如,将找到的“Exc...

有两个工作簿,一个工作簿中存放着要查找并替换成的文本,如下图1所示,列A中是要查找的文本,将列A中查找到的文本替换成列B中相应的文本,例如,将找到的“Excel”替换成“Excel”。

图1

另一个工作簿中是我们要替换其文本的工作簿,我们要在该工作簿所有工作表中查找上图1列A中的值并将找到的文本替成列B中的文本,如图2所示。

图2

要实现的结果如下图3所示。

图3

使用下面的VBA代码来完成上述任务。在图1所示的工作簿中,打开VBE,插入一个标准模块,输入代码:

‘查找并替换指定工作簿中的多个文本

Sub MultiFindReplace()

Dim ReplaceListWB As Workbook

Dim ReplaceInWB As Workbook

Dim wks As Worksheet

Dim ReplaceIn As String

Dim ReplaceList As Range

Dim i As Long

‘获取要进行替换文本操作的工作簿

ReplaceIn =Application.GetOpenFilename( _

“要替换文本的工作簿, *.xls?”, 1, _

“选择要替换文本的工作簿”)

‘如果单击取消,则退出程序

If ReplaceIn =”False” Then Exit Sub

Application.ScreenUpdating = False

‘要替换文本的工作簿

快速交换所选的两个单元格区域中的值

有时候,我们需要将两个单元格区域中的数据对换,也就是说,第一个区域的数据放置到第二个区域,而第二个区域的数据放置到第一个区域。 通常,我们可以先将第一个区域的数据复制到另一个地方,然后将第二个区域的数据复制到第一个区域,最后将先前复制到另一个地方的数据复制到第二个区域。 然而,使用VBA代码可以帮助我们快速完成任务

Set ReplaceInWB = Workbooks.Open(ReplaceIn)

‘替换文本所在的工作簿

Set ReplaceListWB = ThisWorkbook

‘替换文本所在的区域

Set ReplaceList = ReplaceListWB.Worksheets(1). _

Cells(1,1).CurrentRegion

‘遍历要替换文本的工作簿中所有工作表

For Each wks In ReplaceInWB.Worksheets

‘使用替换文本来替换工作表中的数据

With ReplaceList

For i = 2 To .Rows.Count

Call wks.UsedRange.Replace( _

.Cells(i,1).Value, _

.Cells(i,2).Value, _

xlPart, ,False)

Next i

End With

Next

‘保存并关闭要替换文本的工作簿

ReplaceInWB.Save

ReplaceInWB.Close

Application.ScreenUpdating = False

End Sub

运行代码,弹出下图4所示的对话框,要求选择要替换文本的工作簿文件。选择工作簿文件后,将根据上图1工作表中的文本自动对该工作簿中的文本进行查找和替换操作。

图4

Excel数据批量写入Word

之前有两篇文章过Excel和Word数据交互的基础知识,这里说个实际遇到的综合案例,基本上将之前的知识点结合起来了。 一、实际案例引入 这次遇到的案例需求:将Excel数据批量写入Word。需要写入的内容如下图所示,红色框里的内容是需要写入word的。 我这里有很多个excel文件,每一个都需要打开把数据写入

后台-系统设置-扩展变量-手机广告位-内容正文底部
未经允许不得转载:

作者:office教程网,原文地址:excel工作簿所有工作表中的多值替换发布于2023-12-08 07:30:42
转载或复制请以超链接形式并注明出处 演示站

分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

留言与评论(共有 0 条评论)
   
验证码: