excel - 跳过迭代列
问题描述
我想做的事情是如果vInputs(1, i)
小于 22,我希望代码转到下一个迭代列,如果大于 22,则继续执行代码。
问题出在If vInputs(1, i)...
一线。不知道我做错了什么:
Sub CreateTestResultTableV2()
Application.ScreenUpdating = False 'helps the code run faster
Dim vInputs, vResults()
Dim c As Integer, i As Integer
'create INPUTS array
c = Range("b5").End(xlToRight).Column
vInputs = Range("b5", Cells(8, c))
'determine last value in the column
c = UBound(vInputs, 2)
'create RESULTS array
ReDim vResults(1 To 3, 1 To c)
For i = 1 To c
If vInputs(1, i) <= 22 Then GoTo Next i
Else
'set values
Range("j16") = vInputs(1, i)
Range("n12") = vInputs(4, i)
'copy output values into RESULTS array
vResults(1, i) = Range("h41")
vResults(2, i) = Range("k41")
vResults(3, i) = Range("z14")
Next i
Range("e47").Resize(3, c) = vResults
Application.ScreenUpdating = True
End Sub
解决方案
不要使用Goto
语句跳过循环中的迭代。使用相反的运算符,仅在条件为 时执行循环中的代码True
。
For i = 1 To c
If vInputs(1, i) > 22 Then
'set values
Range("j16") = vInputs(1, i)
Range("n12") = vInputs(4, i)
'copy output values into RESULTS array
vResults(1, i) = Range("h41")
vResults(2, i) = Range("k41")
vResults(3, i) = Range("z14")
End if
Next i
推荐阅读
- kendo-ui - 事件:onChange 下拉列表
- html - 如何知道使用 div 构建导航菜单
- matplotlib - 将蒙版恢复为图像
- bash - 如何使用 bash 将输入发送到在远程主机上运行的控制台/CLI 程序?
- javascript - 有没有办法获取数组中的所有值或匹配 PostresSQL 查询中的所有数组内容?
- python - 逻辑回归的小批量梯度下降预测错误?
- java - 为 ec2 部署创建 appspec.yml 文件
- authentication - 关于使用AuthenticationPlugin的Cookie Authenticator实现Remember Me
- html - 在浏览器中播放不受支持的 HTML5 视频格式
- git - Git 跨子模块移动文件