excel - 循环语句中的函数 IIF
问题描述
我有一个工作代码循环遍历数组的行,然后将值存储到另一个数组中。实际上代码没有问题,但我正在努力提高我的技能并学习新技能这是代码
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
我想做的是压缩嵌套循环,这是我的尝试
For j = iif(i mod2=1,LBound(a, 2) To UBound(a, 2),UBound(a, 2) To LBound(a, 2) Step -1)
但这似乎无效。有任何想法吗?
解决方案
这很好用,我可以在专家的帮助下解决这个问题非常感谢大家
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
推荐阅读
- jquery - 尝试使用数据表时出现 mData 错误
- reactjs - React 状态更新/渲染后如何设置焦点
- delphi - 如何使选项卡不可见,而不是在选择选项卡时显示的工作表?- 德尔福火猴
- c# - c# groupBy 失败,找不到密钥异常
- mongodb - 如何在mongodb的单个数组中推送所有值
- javascript - 如何测试 useState 和 useEffect 反应钩子
- android - 无法将特定项目添加到 activity_main.xml
- python - 机器人在 SSH 连接中获取 Telnet.Execute 命令的输出
- java - 如何让我的相机更新与我的播放器精灵相同的帧?
- android - 不知道何时调用回收器视图动画以使其工作