百科网

首页 > 科技数码

科技数码

excel中如何快速替换多个内容,简单VBA代码一键完成

科技数码佚名2024-09-11

这个在日常办公中,经常遇到各种系统导出的数据,比如家庭地址,是“北京市东城区安定门街道办事处五道营社区居委会”这样的全名。看起来不是很简明。而我们实际需要的可能就只是“安定门五道营”这个关键信息。

excel中,就要用Crtl H来替换,但是要把北京市东城区安定门街道办事处五道营社区居委会”变成“安定门五道营”,就需要替换3次。如果只是操作一次,那3次就3次吧,毕竟就麻烦这一回。

但是,如果是每个月这么操作一回甚至是多回大量数据,那就显得很麻烦了。因此,我想用VBA帮忙,只用改一次,下次直接粘贴直接用。

打开excel,按Alt F11,打开VBA编辑器,把以下代码粘贴进去,然后按F5执行。

在弹出的窗口中,填写要替换信息所在单元格范围,如A2:A9。

最后点击,确定,OK了,是不是超简单。

这段代码还针对数据量大容易卡死进行了优化,即时是几十万条数据,也只是秒速完成。

最后把VBA代码放下面:

Sub replaceDataInColumn()

Dim targetRange As Range

Dim data As Variant
(www.wS46.com)

Dim i As Long, j As Long

Dim targetCol As String

On Error Resume Next

Set targetRange = Application.InputBox("请选择要操作的目标列范围(例如:选择Z1:Z100):", Type:=8)

On Error GoTo 0

If targetRange Is Nothing Then

MsgBox "操作已取消。"

Exit Sub

End If

targetCol = Split(targetRange.Address, "$")(1)

data = Range(targetCol & "1:" & targetCol & Range(targetCol & Rows.Count).End(xlUp).Row).Value

For i = 1 To UBound(data)

If Not IsEmpty(data(i, 1)) Then

data(i, 1) = Replace(data(i, 1), "北京市东城区", "") ' 北京市东城区 根据实际修改

data(i, 1) = Replace(data(i, 1), "街道办事处", "") ' 街道办事处 根据实际修改

data(i, 1) = Replace(data(i, 1), "居委会", "") ' 居委会 根据实际修改

End If

Next i

Range(targetCol & "1").Resize(UBound(data), 1).Value = data

MsgBox "替换完成。"

End Sub

当然,如果你有更多的excel学习需要,可以试试以下一些课程。

打赏