请帮我找出我的错误在哪里。
我在单元格 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