Excel VBA用于循环循环太早
当我单步遍历代码时,在“Cells(r_count,5)=temp+totalDays”行之后,它返回到“For c_count”循环的开头,代码永远不会到达下一部分,因此计数器不会被判有罪Excel VBA用于循环循环太早,excel,vba,Excel,Vba,当我单步遍历代码时,在“Cells(r_count,5)=temp+totalDays”行之后,它返回到“For c_count”循环的开头,代码永远不会到达下一部分,因此计数器不会被判有罪 For c_count = 7 To 42 Step 5 For r_count = 4 To 80 If Cells(r_count, c_count) = "pass" Then If Not (IsEmpty(Cells(r_count, (c_coun
For c_count = 7 To 42 Step 5
For r_count = 4 To 80
If Cells(r_count, c_count) = "pass" Then
If Not (IsEmpty(Cells(r_count, (c_count + 1)))) Then
If Not (IsEmpty(Cells(r_count, (c_count + 2)))) Then
s_date = Cells(r_count, (c_count + 1))
e_date = Cells(r_count, (c_count + 2))
totalDays = DateDiff("d", s_date, e_date)
temp = Cells(r_count, 5)
Cells(r_count, 5) = temp + totalDays
End If
End If
End If
Next r_count
Next c_count
我必须在我的代码中监督一些愚蠢的东西。我应该将IF语句转换为一个语句而不是多个语句吗?有什么帮助吗?工作表更改事件是否会调用此代码?我这样假设是因为您在
单元格(r_count,5)=temp+totalDays
行中说它返回到开始-这是因为这一行设置单元格的值,从而触发工作表更改事件,这也是它最终完成的原因
如果是这样,则可以在执行更新时将Application.EnableEvents设置为False(实际上是Philip的建议)。例如:
Private Sub Worksheet_Change()
Application.EnableEvents = False
....your code here....
Application.EnableEvents = True
End Sub
temp+totalDays等于什么?用户1932554请在第行
code
下面添加步骤,对于r_count=4到80Hiten004,我尝试了步骤1,它做了同样的事情。melanie,temp+totalDays等于正确的数字。(单元格中存储的内容(温度)和日期差异)。但它会返回到“For c_count…”并再次开始,使用相同的c_count和r_count number.temp+totalDays值高于80??无需全局变量。查看应用程序。EnableEvents
是的,很好。我习惯于使用全局变量作为EnableEvents,这对UserForm控件事件不起作用,但在这里更合适。我已经把我的答案编辑好了。非常感谢你!