【发布时间】:2021-10-25 18:48:27
【问题描述】:
我目前有一个循环来查看两列之间的差异,如果差异高于某个阈值,则它会复制到单独的工作表中。截至目前,循环运行良好。
表 1
| A | B | C |
|---|---|---|
| Fruits | 400 | 200 |
| Veggies | 450 | 50 |
| Produce | 100 | 50 |
| Clean | 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 循环结果
| A Count | B Type | C 2020 | D 2021 | E 2020 -2021 |
|---|---|---|---|---|
| 1 | Fruits | 400 | 200 | 200 |
| 2 | Veggies | 450 | 50 | 400 |
| 3 | Clean | 1000 | 100 | 900 |
但是,我想按降序对列 E 的循环 sheet2 结果进行排序,如下所示。谁能提供对循环结果进行排序的最佳方法?
Sheet2 循环结果以降序排序
| A Count | B Type | C 2020 | D 2021 | E 2020 -2021 |
|---|---|---|---|---|
| 1 | Clean | 1000 | 100 | 900 |
| 2 | Veggies | 450 | 50 | 400 |
| 3 | Fruits | 400 | 200 | 200 |
【问题讨论】:
标签: excel vba loops sorting range