Excel 在用户窗体中使用点模式

Excel 在用户窗体中使用点模式,excel,vba,Excel,Vba,我注意到使用RefEdit控件会使Excel进入“点”模式以选择适当的范围。(您可以看到“就绪”状态更改为“点”,并且当前参照在当前视图中变为动画) 我的问题是,有没有办法轻松复制这种模式?我遇到问题是因为我的表单不是模态的,当使用RefEdit控件返回表单时,Excel只是锁定(一个已知问题)。 我想,仅仅将Modal设置为true就可以解决这个问题,但如果能找到更好的方法来克服这个限制,那就太好了。是的。当您使用application.inputbox时,您会注意到当您单击范围中的第一个单元

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

我的问题是,有没有办法轻松复制这种模式?我遇到问题是因为我的表单不是模态的,当使用RefEdit控件返回表单时,Excel只是锁定(一个已知问题)。

我想,仅仅将Modal设置为true就可以解决这个问题,但如果能找到更好的方法来克服这个限制,那就太好了。

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


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

之前我已经提到过:“可能的重复的WOOPS,没有考虑这个问题,因为我在选择工作簿之外没有麻烦。”实际上,再仔细考虑一下,这个问题也适用于这里,因为当窗体处于活动状态时切换工作簿非常困难。因此,您可以使用窗体切换工作簿:)是的,但我面临的问题不是在不同的工作簿之间,而只是在使用RefEdit控件时保持窗体非模态。我只使用了一本书,但希望能够在保持表单可用的同时进行更改等。我现在处理它的方法是将表单的状态保存在一个隐藏的工作表中,并提供一个按钮,在用户关闭表单后重新显示表单以继续处理该书。虽然不是最优的,但它基本上是有效的。如果不卸载表单,只需隐藏表单,然后根据需要以模式再次显示表单,该怎么办?也就是说,使用有问题的控件时将其设置为模态,然后当控件失去焦点时,隐藏窗体并重新打开非模态…如果您可以为此弹出另一个对话框,我认为这是一个很好的解决方法。当然,这将颠覆这个问题,因为它使InputBox模式而不是表单,这样Excel就不会对其进行奇怪的恶作剧+谢谢你把它写进答案里。
?application.inputbox("Enter a range:","Range", Type:=8).address