我有 1 列,应包含金额,但其格式不正确,并且被视为文本。
因此,需要将点替换为空,然后将逗号替换为点。我有代码:
Private Sub Correction_of_dot()
Dim i As String
Dim k As String
i = "."
k = ""
Columns("P:P").Replace what:=i, replacement:=k, lookat:=xlPart, MatchCase:=False
End Sub
Private Sub Correction_of_comma()
Dim i As String
Dim k As String
i = ","
k = "."
Columns("P:P").Replace what:=i, replacement:=k, lookat:=xlPart, MatchCase:=False
End Sub
但它什么也没做...没有错误,只是加载,然后什么也没有发生。你能告诉我,我做错了什么或者我可以做得更好吗?
非常感谢!
最佳答案
您可以循环遍历该列并使用替换功能。
Dim i As Long
Dim finalRow As Long
finalRow = SheetX.Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 to finalRow
SheetX.Cells(i, 1).Value = Replace(SheetX.Cells(i, 1).Value, ".", "")
SheetX.Cells(i, 1).Value = Replace(SheetX.Cells(i, 1).Value, ",", ".")
Next i
注意:我没有对此进行测试 - 但它应该可以工作。 另外:将 SheetX 更改为任何合适的工作表 CodeName,并根据需要更改列引用(本例中为第 1 列)
关于VBA-替换字符串中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46663119/