如何替换 Excel VBA 上的列中的特定值?



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

我的列如下所示:

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

现在我要做的是只将第一个"."替换为"。哎呀。

这是我已经尝试过的:

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

不知不觉的结果是所有点都将改变:

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

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

您可以使用:

Option Explicit
Sub test()
Dim LastRow As Long, i As Long
Dim str As String
'Change sheet if needed
With ThisWorkbook.Worksheets("Sheet1")
'Find the last row of column D
LastRow = .Cells(.Rows.Count, "D").End(xlUp).Row
'Loop column D
For i = 1 To LastRow
'Replace the first occurance
str = Replace(.Range("D" & i).Value, ".", ".IO.", , 1)
.Range("D" & i).Value = str
Next i
End With
End Sub

例如

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, "."))

可以通过将columnreplacement字符串作为参数添加到子中来使其更具通用

最新更新