程序流意外行为
Program flow unexpected behavior
我正在 运行宁以下子,在另外两个子里面:
Sub SalvaDadosLogin()
1: ThisWorkbook.Worksheets("Registro").range("a11") = loginComdinheiro
2: ThisWorkbook.Worksheets("Registro").range("a12") = senhaComdinheiro
3: ThisWorkbook.Worksheets("Registro").range("a14") = salvaSenhaComdinheio
4: ThisWorkbook.Save
End Sub
有时,当我 运行 这个子程序时,我的 VBE 开始执行用户定义的函数(在 运行 执行第 1 行之后)。其他时候它不会执行,并且执行该子程序的其他行。我不知道是什么原因造成的,因为测试条件没有改变。
为什么我的工作表在第 1 行之后被重新计算?
没有更多信息,您似乎正在更改工作表,这会触发重新计算。
您可以暂停重新计算并稍后恢复。
let savedCalcMode = Application.Calculation
Application.Calculation = xlCalculationManual
On Error Goto restore
...
restore:
Application.Calculation = savedCalcMode
如果你这样做,即使出现错误也要尝试恢复,否则你将完成将全局计算状态留在一个有趣的设置中,因此是 On Error 部分。
(仅供参考,当您恢复计算模式时,它几乎会立即重新计算整个工作表,这意味着您不想在不需要时执行 save/restore。)
我正在 运行宁以下子,在另外两个子里面:
Sub SalvaDadosLogin()
1: ThisWorkbook.Worksheets("Registro").range("a11") = loginComdinheiro
2: ThisWorkbook.Worksheets("Registro").range("a12") = senhaComdinheiro
3: ThisWorkbook.Worksheets("Registro").range("a14") = salvaSenhaComdinheio
4: ThisWorkbook.Save
End Sub
有时,当我 运行 这个子程序时,我的 VBE 开始执行用户定义的函数(在 运行 执行第 1 行之后)。其他时候它不会执行,并且执行该子程序的其他行。我不知道是什么原因造成的,因为测试条件没有改变。
为什么我的工作表在第 1 行之后被重新计算?
没有更多信息,您似乎正在更改工作表,这会触发重新计算。
您可以暂停重新计算并稍后恢复。
let savedCalcMode = Application.Calculation
Application.Calculation = xlCalculationManual
On Error Goto restore
...
restore:
Application.Calculation = savedCalcMode
如果你这样做,即使出现错误也要尝试恢复,否则你将完成将全局计算状态留在一个有趣的设置中,因此是 On Error 部分。
(仅供参考,当您恢复计算模式时,它几乎会立即重新计算整个工作表,这意味着您不想在不需要时执行 save/restore。)