我有一个工作代码,它循环遍历数组的行,然后将值存储到另一个数组中。实际上代码没有问题,但我正在努力提高我的技能并学习新技能这是代码
Sub Test()
Dim a, i As Long, j As Long, n As Long
a = Cells(1).CurrentRegion.Value
ReDim b(1 To UBound(a, 1) * UBound(a, 2))
For i = LBound(a) To UBound(a)
If i Mod 2 = 1 Then
For j = LBound(a, 2) To UBound(a, 2)
n = n + 1
If a(i, j) <> Empty Then b(n) = a(i, j)
Next j
Else
For j = UBound(a, 2) To LBound(a, 2) Step -1
n = n + 1
If a(i, j) <> Empty Then b(n) = a(i, j)
Next j
End If
Next i
Range("M2").Resize(n).Value = Application.Transpose(b)
End Sub
Run Code Online (Sandbox Code Playgroud)
我想做的是压缩嵌套循环,这是我的尝试
For j = iif(i mod2=1,LBound(a, 2) To UBound(a, 2),UBound(a, 2) To LBound(a, 2) Step -1)
Run Code Online (Sandbox Code Playgroud)
但这似乎不成立。有任何想法吗?
这很好用,我可以在专家的帮助下弄清楚非常感谢大家
Sub Test()
Dim a, i As Long, j As Long, n As Long
a = Cells(1).CurrentRegion.Value
ReDim b(1 To UBound(a, 1) * UBound(a, 2))
For i = LBound(a) To UBound(a)
For j = IIf(i Mod 2 = 1, LBound(a, 2), UBound(a, 2)) To IIf(i Mod 2 = 1, UBound(a, 2), LBound(a, 2)) Step IIf(i Mod 2 = 1, 1, -1)
n = n + 1
If a(i, j) <> Empty Then b(n) = a(i, j)
Next j
Next i
Range("N2").Resize(n).Value = Application.Transpose(b)
End Sub
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46 次 |
| 最近记录: |