【问题标题】:Excel inputbox reopens after entryExcel输入框输入后重新打开
【发布时间】:2013-02-01 18:16:06
【问题描述】:

在 Excel 中有宏,它使用 application.inputbox 在单元格中保存日期。输入日期后,格式正确的日期出现在单元格中,然后输入框再次打开。它似乎陷入了这个奇怪的循环。无论我输入多少次它再次询问的日期。

这是这段代码:

Function freshSTART()

redBOX.Cells(1).Value = Application.InputBox(prompt:="Enter todays date: ", Title:="TODAY'S DATE", Type:=1)
redBOX.Cells(2).Value = Application.InputBox(prompt:="Enter customer's name: ", Title:="CUSTOMER NAME", Type:=2)
redBOX.Cells(3).Value = Application.InputBox(prompt:="Enter travel out date: ", Title:="TRAVEL OUT DATE", Type:=1)
redBOX.Cells(4).Value = Application.InputBox(prompt:="Enter travel back date: ", Title:="TRAVEL BACK DATE", Type:=1)
redBOX.Cells(5).Value = Application.InputBox(prompt:="Enter number of technicians: ", Title:="TECHNICIANS", Type:=1)
redBOX.Cells(6).Value = Application.InputBox(prompt:="Enter number of engineers: ", Title:="ENGINEERS", Type:=1)
redBOX.Cells(7).Value = Application.InputBox(prompt:="Enter location: ", Title:="LOCATION", Type:=2)

End Function

【问题讨论】:

  • 这个函数是怎么触发的? (为什么不使用 Sub,因为这段代码不返回任何值?)

标签: excel vba inputbox


【解决方案1】:

您既不是passing a parameter,也不是value returned。在这种情况下,function 是没有用的,而是 Subroutine

您是在Worksheet changedCell changed 事件上调用此函数吗?触发上述事件的函数时请使用Application.EnableEvents = False。您必须关闭事件,否则它会不断重复自己并拖入无限循环。

然后在change event 中重新开启事件。

参考资料:

【讨论】:

  • 有趣。你是对的,功能是没有意义的。更改为 sub 但问题仍然存在。从打开的工作簿调用宏。在调用成功之前制作 EnableEvents = False。不太清楚这一点,我有很多东西要学。感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2012-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多