【问题标题】:Using Point mode in a UserForm在用户窗体中使用点模式
【发布时间】:2015-11-22 01:40:37
【问题描述】:

我注意到使用 RefEdit 控件会导致 Excel 进入“点”模式以选择适当的范围。 (您会看到“就绪”状态更改为“点”,并且当前参考在当前视图中变为动画)。

我的问题是,有没有办法轻松复制这种模式?我遇到了问题,因为我的表单不是模态的,并且在使用 RefEdit 控件后返回它时,Excel 只是锁定(一个已知问题)。
我想仅仅将 Modal 设置为 true 就可以解决这个问题,但如果知道有更好的方法来解决这个限制,那就太好了。

【问题讨论】:

  • 我之前已经介绍过这个:) VBA Dialog box to select range in different workbook的可能重复
  • 哎呀,没有考虑这个问题,因为我在工作簿之外进行选择没有问题。 ;) 实际上,再想一想,这个问题也适用于这里,因为当表单处于活动状态时切换工作簿非常困难。
  • 因此您使用表单来切换工作簿:)
  • 是的,但我面临的问题不在于不同的书籍之间,而仅仅是在使用 RefEdit 控件时保持表单非模态。我只是在使用一本书,但希望能够进行更改等,同时仍然保持表格可用。我现在解决它的方法是将表单的状态保存在隐藏的工作表中,并提供一个按钮以在用户关闭表单后重新显示表单以继续处理这本书。不是最佳的,但它大部分都有效。
  • 如果您不卸载表单,您只是将其隐藏,然后根据需要再次以模态方式显示它,该怎么办? IE。使其成为模态以使用有问题的控件,然后当控件失去焦点时,隐藏表单并重新打开非模态...

标签: excel vba


【解决方案1】:

是的。当您使用 application.inputbox 时,您会注意到当您单击范围中的第一个单元格时,模式会从 Enter 更改为 Point。您可以使用以下代码在即时窗口中对此进行测试(其中 Type:=8 指定范围):

?application.inputbox("Enter a range:","Range", Type:=8).address

如果你改变选择,输入框显示也会改变。

【讨论】:

  • 我想这是一个很好的解决方法,如果您可以为此弹出另一个对话框。当然,这会颠覆问题,因为它使 InputBox 模态而不是 Form,因此 Excel 不会对其进行奇怪的恶作剧。 +1 将其放入答案中。
猜你喜欢
  • 1970-01-01
  • 2010-09-09
  • 2018-04-06
  • 2020-05-23
  • 1970-01-01
  • 1970-01-01
  • 2011-01-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多