Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法让一段VBA代码中断单元格计算?_Vba_Excel - Fatal编程技术网

有没有办法让一段VBA代码中断单元格计算?

有没有办法让一段VBA代码中断单元格计算?,vba,excel,Vba,Excel,在excel项目中,我有几千个单元格,如果用户输入的数据无效,这些单元格将显示一个消息框。现在的情况是,每次计算时,必须关闭几百个消息框才能修复错误是否有办法使显示消息框的VBA功能同时停止任何其他单元格的计算? 编辑:我并不是真的在寻找解决几百个消息框问题的替代方案。如果我需要的话,解决这个问题并不难。但是,我很想知道是否有任何方法可以使用VBA函数停止单元格计算,部分原因是我可以看到它的其他用途。为什么要使用MessageBox?想创建自己的错误消息吗? Chip Pearson说,实际上返

在excel项目中,我有几千个单元格,如果用户输入的数据无效,这些单元格将显示一个消息框。现在的情况是,每次计算时,必须关闭几百个消息框才能修复错误是否有办法使显示消息框的VBA功能同时停止任何其他单元格的计算?


编辑:我并不是真的在寻找解决几百个消息框问题的替代方案。如果我需要的话,解决这个问题并不难。但是,我很想知道是否有任何方法可以使用VBA函数停止单元格计算,部分原因是我可以看到它的其他用途。

为什么要使用MessageBox?想创建自己的错误消息吗? Chip Pearson说,实际上返回字符串是不好的。使用CVErr代替fast fail


或者按照的建议,我认为他的意思是写一个接受一大块单元格的函数,您自己在代码中循环单元格,然后在出现第一个错误时中断循环。

Application.Calculation=xlCalculationManual
为什么不在宏开始时执行
Application.Calculation=xlCalculationManual
,然后在范围内查找触发消息框的内容,然后重新计算后呢?也许您可以将其添加到
msgbox
之前,但您的其他数据可能已经计算过了。到目前为止,您有什么代码?更好的设计是,如果有任何数量的单元格无效,则有数千个单元格显示一个消息框。电子表格足够大,我已经将xl计算设置为手动,因此每次更改单元格时,我不必等待两分钟。我需要的是一个单元格的计算来中断单元格的计算,这样,除非我重新开始计算,否则之后将要计算的单元格不会被计算。我知道用户可以使用esc键中断计算,但VBA函数能做到吗?最后,这正是我所做的。同时,虽然它确实解决了我的具体问题,但它本身并没有回答这个问题。有可能进行VBA代码中断单元计算吗?我已经更改了答案。