For x = 3 To Row1
For y = 3 To Row2
If sourcesheet.Range("M" & x) > 7 Then
Worksheets("超时问题单").Range("d" & y) = sourcesheet.Range("M" & x)
Next y
End If
Next j
单步执行,发现if语句直接没有执行是为什么?
VBA中for 与if嵌套后 if不执行的原因
答案:2 悬赏:30 手机版
解决时间 2021-02-08 09:45
- 提问者网友:缘字诀
- 2021-02-07 22:46
最佳答案
- 五星知识达人网友:老鼠爱大米
- 2021-02-07 23:16
Next y
End If
你不觉得这两句 顺序颠倒了吗
Next j
你不觉得这个改是x不是j么
End If
你不觉得这两句 顺序颠倒了吗
Next j
你不觉得这个改是x不是j么
全部回答
- 1楼网友:神也偏爱
- 2021-02-08 00:16
想同时变就不能放在两个for循环中,for循环嵌套始终都是不同步的,外循环每执行一次,内循环都要完整地循环一下。
你只能是找到d与e变化的联系,用同一个变量将它们关联起来。就如楼上给的方法,e的步进值是1,而d的步进值是3,所以只要把e和d各自的初始值定好,就可以用一个变量i关联,并且只用这个公共变量来循环。
就你的例子而言:
定义初始值
e=2
d=3
循环
for i = 0 to 1
cells(1, e + i)=cells(d + 3 * i, 4)
next i
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯