我尝试创建一个while循环以确保它是在用户输入的情况下设置的,但是当它尝试分配值并且用户已经在输入内容时,它似乎神奇地停止了。
基本上如何阻止宏从这种意外情况结束?如何检测用户是否阻止?
答案 0 :(得分:1)
从您的评论中,您对VBA的运作方式存在误解。
首先,从模块运行的宏控制工作簿,你无法在一段时间内检测用户输入或者像这样循环检测用户输入,你想要的是使用本教程中的事件监听器: a good site for vba basics
基本上使用" Private Sub Worksheet_Change
"工作表/工作簿的选项。
此外,如果您只监控一个单元格,请查看此how to use worksheet change
答案 1 :(得分:0)
Function IsEditing() As Boolean
If Application.Interactive = False Then
IsEditing = False
Exit Function
End If
On Error GoTo err:
Application.Interactive = False
Application.Interactive = True
IsEditing = False
Exit Function
err:
IsEditing = True
Exit Function
End Function