我在Excel中遇到了VBA的问题,下面的Sub会突然停止在指示的行上执行。
子菜单的目的是每当按下工作表上的“ ckbRequestNeu”复选框时,更新两个单元格。但是,单步执行时,代码只能将单个值写入工作表。例如。如果Inp_Exists = 1,则它将写入Inp_Exists = 2,但是将立即停止,就像执行了End语句一样。
如果我再按F8继续步进,则该子项将重新启动,就好像再次单击该复选框一样。似乎ckbRequestNEU_Click事件已再次触发,但我不知道这是怎么发生的。
Private Sub ckbRequestNEU_click()
With Worksheets("Stress Requests")
'If an input file exists, mark it as out of date
If .Range("InpExists").Value = 1 Then
.Range("InpExists").Value = 2 'Code stops here
End If
If .ckbRequestNEU = False Then
.Range("Request_NEU") = 0 'And here
.ckbRequestNEU.BackColor = RGB(179, 255, 179)
Else
.Range("Request_NEU") = 1 'Or here
Sheets("Stress Requests").Cells(33, 5) = 1
.ckbRequestNEU.BackColor = RGB(0, 204, 0)
End If
End With
End Sub
该程序的总体目的是为一个有限元求解器创建一个文本输入文件,因此第一个If语句根据以下复选框检查该文件是否存在,并将其标记为过期:文件)已更改。