仅在 VBA 中的 MID 位置替换

hmn*_*mnd 3 excel vba

我想使用替换功能仅替换MID单元格中出现的确切位置,而不是所有出现的位置。
前任。我想替换位置六(第一次出现)的###in +++++###****###,而不是第二个。

For Each c In .Columns(3).Cells
    If c.Value = "" Then
    Else
    Do While Len(c.Value) < 20
         c.Value = c.Value & " "
    Loop
    transNum = Mid(c.Value, 6, 3)
    c.Value = Replace(c.Value, Mid(c.Value, 6, 3), "")
    c.Value = "0" & transNum & c.Value
    End If
    y.Sheets(1).Range("E" & c.Row) = y.Sheets(1).Range("E" & c.Row) & c.Value
Next c
Run Code Online (Sandbox Code Playgroud)

小智 5

Mid既是一个语句又是一个函数。使用语句版本来做你想做的事。Mid分别作为语句和函数在 help 中。

C = "CatDog"
Mid(C, 2) = "Fr"
MsgBox C
Run Code Online (Sandbox Code Playgroud)

中期声明

将 Variant(字符串)变量中指定数量的字符替换为另一个字符串中的字符。

句法

Mid(stringvar, start[, length]) = 字符串

语句语法包含以下部分Mid

stringvar必需。要修改的字符串变量的名称。启动 必填;变体(长)。stringvar中文本替换开始的 字符位置 。

长度可选;变体(长)。要替换的字符数。如果省略,则使用所有字符串。

字符串必填。替换部分 stringvar 的字符串表达式。

评论

替换的字符数始终小于或等于 stringvar 中的字符数。

注意 使用包含MidB在字符串中的字节数据的语句。在该MidB语句中,start 指定 stringvar 中替换开始的字节位置,length 指定要替换的字节数。