vba - VBA,excel宏暂停并尽可能恢复工作

标签 vba excel

我无法找出解决以下问题的最佳方法。基本上我的宏(excel,VB)正在检查几个(100+)工作表的正确值,如果发现错误的值,我希望它停止,给我一个警告,然后我可以看看为什么值是错了,手动更正它然后我想恢复宏,或者记住最后检查的值,所以如果我返回,它会记住从哪里继续(恢复)。

我当前的问题是它找到了错误的值,然后我可以让它停止以便我检查问题,或者它遍历所有工作表,然后我必须记住哪些工作表具有错误的值。

我想到的是制作一个列表,每次发现错误值时都会添加工作表的名称。问题是,如果根本没有错误值,通常在同一张工作表中会有超过 1 个错误值,这会将相同的工作表名称多次添加到列表中。另一个问题是我无法立即更正这些值。

我对编程非常缺乏经验,因此非常感谢您对如何最好地解决这个问题的想法(我不想花很长时间编写对这样一个“简单”问题没有效率的东西)。

最佳答案

当发现错误时(我假设您已经能够识别),您可以使用 Application.InputBox提示您输入新值的功能。

例如,如果 rng是一个 Range 变量,表示正在检查的单元格,并且您有一些逻辑来确定错误发生的位置,那么您可以这样做:

rng.Value = Application.InputBox("Please update the value in " & rng.Address, "Error!", rng.Value)

inputbox 函数在等待用户输入的同时有效地停止了过程的执行。

如果 InputBox 不够健壮,那么您可以创建一个自定义 UserForm 来做同样的事情。但是对于一次修改单个范围值,InputBox 可能是最容易实现的。

关于vba - VBA,excel宏暂停并尽可能恢复工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29281456/

相关文章:

ms-access - 更改记录源时自动设置 LinkChildFields 和 LinkMasterFields

excel - 有没有比 vba 宏中的 foreach 循环更快的选项?

c++ - Excel VBA : "Run-time error ' 4 9': Bad DLL calling convention" calling C++ dll

vba - Excel VBA反向for循环步进超出最终值

excel - Excel 中的截断字符串 - 是否有函数可以删除分隔符后字符串的最后一部分

image - 将 250 多个图像捕捉到每个单元格的一个图像

excel - 如何创建宏以将数据从一个excel工作表复制到另一个工作表的下一行

mysql - Excel VBA连接Linux服务器上的MySQL

java - 在 Java 中将 xml 文件转换为 excel

excel - 重命名目录中的文件不仅是文件夹