我有一个电子表格,其中包含以下两个子程序(它们还有很多,但我已经删除了与问题没有直接关系的所有代码):
Sub HF_Reset()
Feats_Reset
End Sub
Sub Feats_Reset()
Range("TblAllFeatsSelected").Value = CVErr(xlErrNA)
Range("Test").Value = "Success"
Range("Test2").Value = 1
End Sub
Test
是单个单元格,Test2
是两个单元格区域,TblAllFeatsSelected
是一个大范围。
如果我调用Feats_Reset,它会执行绝对正常,执行它的目的。如果我调用HF_Reset,则Test
会将“成功”放入其中,而Test2
会填充1,但TblAllFeatsSelected
不会更改。我完全不知道发生了什么 - 任何想法?
出于调试目的,我还尝试设置Range("TblAllFeatsSelected").Value = 1
和Range("TblAllFeatsSelected").Value = 0
,并在调用Feats_Reset
时再次正常工作,但在调用HF_Reset
时却没有。
EDIT2:发现问题。子程序将TblAllFeatsSelected
设置为另一个范围的值,当从HF_Reset调用时需要有一个Application.Calculate
,否则它会将其恢复到以前的状态。
有什么方法可以删除这个问题没用吗?这是一个特定的事情,我怀疑它可以帮助其他任何人。
答案 0 :(得分:0)
键盘和椅子之间存在问题。我在代码的完全不同的部分错过了Application.Calculate
。