|
grf1973 发表于 2016-3-8 14:32
把你的算法改进为蛇行数列通用(转折行数H可任意设置)- Sub TEST3() 'grf1973 算法 由kagawa改进。
- Dim ar(), i, j, H, L, k, m, n
- n = 0 '起始值
- m = 90 '结束值
- H = 5 '转折行数
-
- [a1].CurrentRegion = ""
-
- L = (m - n) \ H + 1
- ReDim ar(1 To H, 1 To L)
- i = 1: j = 1
- For k = n To m
- Cells(i, j) = k
- ar(i, j) = k
- If (k - n) Mod H = H - 1 Then '求余计算得到转折位置。
- j = j + 1 '转折位置列j+1 行i不变
- Else '其余位置按列数的奇、偶决定行数i的升序或降序 但列数j不变
- If j Mod 2 Then i = i + 1 Else i = i - 1
- End If
- Next
- [a1].Resize(H, L) = ar
- End Sub
复制代码 呵呵,这样做也很简单的。
|
|