Excel中手动输入时超时

Excel中手动输入时超时,excel,vba,Excel,Vba,我希望用户在Excel单元格中输入数据,但如果输入在给定时间内没有完成,我希望在该超时时停止输入,在单元格中输入在该时间之前键入的内容 更新 我现在尝试了下面的代码,但这不起作用。它不会关闭窗体或超时 子按钮1\u单击() 朦胧的停顿时间,开始的时间 出错时继续下一步 UserForm1.Show '以秒为单位设置持续时间 暂停时间=5 '设置开始时间 开始时间=计时器 当计时器

我希望用户在Excel单元格中输入数据,但如果输入在给定时间内没有完成,我希望在该超时时停止输入,在单元格中输入在该时间之前键入的内容

更新

我现在尝试了下面的代码,但这不起作用。它不会关闭窗体或超时

子按钮1\u单击()
朦胧的停顿时间,开始的时间
出错时继续下一步
UserForm1.Show
'以秒为单位设置持续时间
暂停时间=5
'设置开始时间
开始时间=计时器
当计时器<开始时间+暂停时间时执行
DoEvents对其他流程的产量
环
ActiveCell.Value=UserForm1.TextBox1.Value
卸载UserForm1'关闭表单
端接头

如果要使用userform和textbox进行此操作,可以通过以下方式进行:

Private Sub UserForm_Activate()
  Dim PauseTime, StartTime

  PauseTime = 5                       ' Set duration in seconds
  StartTime = Timer                   ' Set start time
  Do While Timer < StartTime + PauseTime
    DoEvents                          ' Yield to other processes
  Loop
  ActiveCell.Value = TextBox1.Value   ' set the active cell's value to what is in the textbox
  End                                 ' close the form and end the program

End Sub
Private子用户表单_Activate()
朦胧的停顿时间,开始的时间
PauseTime=5'以秒为单位设置持续时间
StartTime=计时器的设置开始时间
当计时器<开始时间+暂停时间时执行
DoEvents对其他流程的产量
环
ActiveCell.Value=TextBox1.Value'将活动单元格的值设置为文本框中的值
“结束”关闭窗体并结束程序
端接头

我不建议使用这种GUI tho,因为它会让用户感到困惑。

VBA在单元格处于编辑模式时不会运行。你需要给他们一个要输入的用户表单,或者在单元格上放置一个文本框。你能让用户表单或文本框超时吗?如果是,怎么做?有点类似,我尝试了下面的代码,但是UserForm在手动关闭之前保持活动状态,即它不会超时然后关闭。我错过了什么?子按钮1\u单击()调整暂停时间,StartTime On Error Resume Next UserForm1.Show PauseTime=5 StartTime=Timer Do,而TimerEnd语句结束所有VBA处理,因此任何打开的表单都将自动关闭。尝试在
结束
行上设置一个断点(F9),当到达该断点时,它应该停止在那里,然后按F8执行
结束
行。
结束
行是否执行?您是否有导致表单再次打开的代码?此代码是否与UserForm或ButtonClick关联,或者是否无关紧要?如果查看函数名称,您将看到我将其放在UserForm上,并且在显示表单时自动运行(使用Activate事件)-在测试工作表和测试用户表单上自行尝试。粘贴代码,然后手动运行表单。你至少能让它起作用吗?