宏vba替换确定符号之后或之前的所有符号

宏vba替换确定符号之后或之前的所有符号

请帮我找出我的错误在哪里。

我在单元格 A1 中有一个字符串 80/120,我想创建一个变量,替换“/”之前的所有符号(包括“/”)并将其放入单元格 B1 中。

Sub secondmacro()
Dim ReplaceSmth As Variant

ReplaceSmth = Cells(1, 1)
ReplaceSmth = Replace(ReplaceSmth, "*/", "")
Cells(1, 2) = ReplaceSmth

End Sub

不明白为什么它什么都没改变,而我在 B1 中得到了 80/120 的值

LPChip 给了我很好的想法,教我如何做到这一点!

我稍微修改了一下你的代码以满足我的需要:

Sub secondmacro()

 Dim ReplaceSmth As Variant, CellPosition As Integer

  ReplaceSmth = Cells(1, 1)
  CellPosition = InStr(1, ReplaceSmth, "/")


If CellPosition <> 0 Then Cells(1, 2) = Mid(ReplaceSmth, CellPosition + 1, Len(ReplaceSmth))

End Sub

谢谢你!

答案1

Replace 无法识别通配符。它仅替换文字文本。看这里获取有关 Replace 函数的更多帮助。

您要做的是首先找到第一个 / 的位置,然后获取文本并将其设置到第一个单元格,然后重复该过程,但对于剩余的文本,将其设置在第二个单元格中。

你的宏看起来会像这样:

Sub secondmacro()
    Dim ReplaceSmth As text, CellPosition as Integer

    ReplaceSmth = Cells(1, 1)
    CellPosition = InStr (1, ReplaceSmth, "/")

    If CellPosition > 1 then
        Cells(1, 1) = MID(ReplaceSmth, 1, CellPosition)
        Cells(1, 2) = MID(ReplaceSmth, CellPosition, len(ReplaceSmth)-CellPosition)
    end if

End Sub

相关内容