|
- Sub test()
- arr = Range("a1:y15")
- Dim crr(1 To 24)
- Dim xrr(1 To 24)
- For i = 4 To 12 Step 2
- brr = Cells(i, 1).Resize(1, 24): n = 0 '2、4、6、8...各行入数组
- For j = 1 To UBound(brr, 2)
- If Val(brr(1, j)) > 0 And Val(arr(15, j)) > 0 Then '本行大于0,15行对应位置大于0,进入数组crr待排序
- n = n + 1
- crr(n) = arr(15, j)
- End If
- Next
- If n = 1 Then '如果crr一个数,直接取用,不排序,直接进结果数组
- nn = nn + 1: xrr(nn) = crr(n)
- Else '否则对crr排序
- For k = 1 To n - 1
- For kk = k + 1 To n
- If crr(k) < crr(kk) Then tmp = crr(k): crr(k) = crr(kk): crr(kk) = tmp
- Next
- Next
- For k = 1 To n '排过序后进结果数组
- If crr(k) > 0 Then nn = nn + 1: xrr(nn) = crr(k)
- Next
- End If
- Next
- [a29].Resize(1, nn) = xrr '显示结果数组
- End Sub
复制代码 |
|