Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何在VBA中计算单元格中的整数并进行排序?_Excel_Vba - Fatal编程技术网

Excel 如何在VBA中计算单元格中的整数并进行排序?

Excel 如何在VBA中计算单元格中的整数并进行排序?,excel,vba,Excel,Vba,我有一列具有不同的数值。有些格式: 0.56 1.52 有些格式如下: 6,352.00 要在excel中进行计算,我想用数字格式为6352.00时的数字替换,并用其他所有替换。用 因此,在结果中,我应该得到: 0,56 1,52 6352,00 然后将它们从最大值排序到最小值 我试着写了一个VBA代码,这不是真的正确,也许有人可以帮助 Sub ChangeFormat1() Dim lngNumberOfCharacters As Long Set ws4 = Activ

我有一列具有不同的数值。有些格式:

0.56
1.52
有些格式如下:

6,352.00
要在excel中进行计算,我想用数字格式为6352.00时的数字替换,并用其他所有替换。用

因此,在结果中,我应该得到:

0,56
1,52
6352,00
然后将它们从最大值排序到最小值

我试着写了一个VBA代码,这不是真的正确,也许有人可以帮助

Sub ChangeFormat1()
    Dim lngNumberOfCharacters As Long
    Set ws4 = ActiveWorkbook.Sheets("atm_hh")

    ws4.Select
    Columns("C:C").Select

lngNumberOfCharacters = Len("C:C")

    If lngNumberOfCharacters > 8
    Selection.Replace What:=",", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
       Else
           Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
        End If

    ActiveWorkbook.Worksheets("atm_hh").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("atm_hh").Sort.SortFields.Add Key:=Range("C1"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("atm_hh").Sort
        .SetRange Range("A2:D66842")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

        End Sub

如果您真的想使用VBA

Sub ChangeFormat1()

Application.ScreenUpdating = False


Dim ws4 As Worksheet
Set ws4 = Sheets("atm_hh")

' If you only want to replace in column A for example
With ws4.Columns("A:A")

    .Replace What:=",", Replacement:="", LookAt:=xlPart, SearchOrder:=xlByRows, _
            MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

    .Replace What:=".", Replacement:=",", LookAt:=xlPart, SearchOrder:=xlByRows, _
            MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

End With

Application.ScreenUpdating = True

End Sub

我尝试使用公式:=SUBSTITUTESUBSTITUTEA1,,,,,,,但它给了我一个错误。例如,使用唯一字符首先从更改为,然后运行。to,然后^to.SUBSTITUTESUBSTITUTEA1,,,,,工作正常。@Ale。。。你的区域设置是什么?你这么做显然是为了这个原因。可能是您的公式必须使用;作为分隔符,而不是,。那就是替代品;,;;。;,