excel中如何快速替换多个内容,简单VBA代码一键完成
这个在日常办公中,经常遇到各种系统导出的数据,比如家庭地址,是“北京市东城区安定门街道办事处五道营社区居委会”这样的全名。看起来不是很简明。而我们实际需要的可能就只是“安定门五道营”这个关键信息。 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 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学习需要,可以试试以下一些课程。 |