比较和组织2个相邻列VBA

时间:2019-01-10 17:48:58

标签: excel vba if-statement comparison

我正在尝试比较Excel中的2个相邻列并根据大小对其进行组织。我想比较单元格A1和B1,如果单元格A1>单元格B1,请切换单元格A1和B1。如果单元格A1 <单元格B1不执行任何操作。我想对数千行执行此操作,并比较每行中的2个单元格,并使用宏进行相应的调整。 例如

2|3 goes to 2|3
4|1 goes to 1|4
7|5 goes to 5|7

我在这里发现了一个类似的问题:Fast compare method of 2 columns

任何帮助将不胜感激!

这是我在尝试建立的链接上找到的图片。它并不能完全满足我的要求,但我认为它已经接近我要尝试的框架!最好宏不会花费特别长的时间。

enter image description here

1 个答案:

答案 0 :(得分:0)

 Sub kjkj()
     With Worksheets("Sheet1") 'Change to your sheet
         Dim rng As Range
         Set rng = .Range("A1:B3") 'Change to your range

         Dim arr As Variant
         arr = rng.Value

         Dim outArr
         ReDim outArr(1 To UBound(arr, 1), 1 To UBound(arr, 2))

         Dim i As Long
         For i = 1 To UBound(arr, 1)
            If arr(i, 1) > arr(i, 2) Then
                outArr(i, 1) = arr(i, 2)
                outArr(i, 2) = arr(i, 1)
            Else
                outArr(i, 1) = arr(i, 1)
                outArr(i, 2) = arr(i, 2)
            End If
        Next i

        rng.Value = outArr
    End With
End Sub