首页 > 解决方案 > 如何替换 Excel VBA 列中的特定值?

问题描述

我正在尝试替换整个 D 列中的特定值。

我的专栏是这样的:

COLUMN D
TD10.LU89.AX300.MT01
TD10.LU89.BT100.MT01
TD10.LU89.BP130.MP01

现在我要做的是只替换第一个“。” 带有“.IO”。

这是我已经尝试过的:

Columns("D").Replace _
What:=".", Replacement:=".IO.", LookAt:=xlPart

显然结果是所有的点都会改变:

TD10.IO.LU89.IO.AX300.IO.MT01

你有解决我的问题的方法吗?非常感谢您提前。

标签: excelvba

解决方案


例如

Sub ReplaceDot()
    Dim cl As Range
    For Each cl In Range("D1:D" & Rows.End(xlUp).Row)
        cl.Value = Left(cl.Value, 4) & ".IO." & Right(cl.Value, Len(cl.Value) - 5)
    Next cl
End Sub

如果左侧部分的长度不同:

cl.Value = Left(cl.Value, InStr(cl.Value, ".") - 1) & ".IO." & Right(cl.Value, Len(cl.Value) - InStr(cl.Value, "."))

可以通过将字符串作为参数添加到 subcolumn来使其更加通用replacement


推荐阅读