VBA循环遍历范围并排序到单独的电子表格

用户16751738

我目前有一个循环查看两列之间的差异,如果差异高于某个阈值,则它会复制到单独的工作表中。截至目前,该循环完美运行。

表 1

一种 C
水果 400 200
蔬菜 450 50
生产 100 50
干净的 1000 100

类似于我正在使用的代码:

Dim i As Long, lastRow As Long
Set Sheet1 = Sheet1
Set Sheet2 = Sheet2
J = 2

lastRow = Sheet1.Cells(Rows.Count, "B").End(xlUp).Row


For i = 2 To lastRow

    If B - C  >= 200  Then

    Sheet2.Range("A" & J).Value = Format(J - 2, "000") + 1
    Sheet2.Range("B" & J).Value = Sheet1.Range("A" & i)
    Sheet2.Range("C" & J).Value = Sheet1.Range("B" & i)
    Sheet2.Range("D" & J).Value = Sheet1.Range("C" & i)
    Sheet2.Range("E" & J).Value = Sheet2.Range("C" & i).Value - Sheet2.Range("D" & i).Value

    J = J + 1

    End If

Next i

Sheet2 循环结果

一个计数 B型 2020 年 D 2021 E 2020 -2021
1 水果 400 200 200
2 蔬菜 450 50 400
3 干净的 1000 100 900

但是,我想按降序对 E 列的循环 sheet2 结果进行排序,如下所示。谁能提供对循环结果进行排序的最佳方法?

Sheet2 循环结果降序排序

一个计数 B型 2020 年 D 2021 E 2020 -2021
1 干净的 1000 100 900
2 蔬菜 450 50 400
3 水果 400 200 200
系统测试器

在您发布的代码中将其添加到您的例程下方。

(注意修正表)。

With Sheet2.Sort
    .SortFields.Clear
    .SortFields.Add2 Key:=Range("E:E") _
    , SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    .SetRange Range("A:E")
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章