我目前有一个循环查看两列之间的差异,如果差异高于某个阈值,则它会复制到单独的工作表中。截至目前,该循环完美运行。
表 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] 删除。
我来说两句