excel VBA中圆点替换为逗号

gwo2fgha  于 2023-01-06  发布在  其他
关注(0)|答案(1)|浏览(165)

我有一个问题,当我试图取代所有的“.”与“”,它的工作正常时,我使用Ctrl + H在Excel工作表和手动这样做。
我已经记录了我在工作表中所做的宏,并得到了这个代码

Columns("Q:S").Select
    Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

但是当我运行宏时,它只删除了“。”,而不是用“,”替换它。
例如,如果单元格在我运行宏后状态为4. 000,它返回4000。我如何修复这个问题?
我也试过改变系统中的小数点分隔符,但是没有用。
谢谢你的帮助。

6vl6ewon

6vl6ewon1#

这个 * 应该 * 用逗号替换所有的句点,而不管数据类型是什么(作为字符串,所以你将不再能够容易地从它们计算)。
如果你想让这些数字成为带有正确分隔符的数字,你仍然会遇到很多麻烦。
顺便说一句,当我使用查找和替换(Ctrl + H)时,我得到了相同的结果,我的“4. 123”变成了“4,123. 00”。这可能与我们的系统设置有关。

Sub Test_Replace_Period_with_Comma()

    Dim ValueRange As Range
    Dim ValueSet
    
    Dim X As Long
    Dim Y As Long
    
    Set ValueRange = Intersect(Columns("Q:S"), Sheet8.UsedRange)
    ValueSet = ValueRange
    
    If ValueRange.Cells.Count = 1 Then
        ReDim ValueSet(1 To 1, 1 To 1)
    End If
    
    For X = 1 To UBound(ValueSet, 1)
        For Y = 1 To UBound(ValueSet, 2)
            'Debug.Print ValueSet(X, Y)
            If ValueSet(X, Y) <> "" Then
                ValueSet(X, Y) = Replace(CStr(ValueSet(X, Y)), ".", ",", 1, , vbTextCompare)
            End If
        Next Y
    Next X
    
    ValueRange.NumberFormat = "@"
    ValueRange = ValueSet
    
End Sub

第一节第一节第一节第一节第一次

相关问题