【问题标题】:Run Worksheet_SelectionChange event while Inputbox active在输入框处于活动状态时运行 Worksheet_SelectionChange 事件
【发布时间】:2019-09-05 14:23:11
【问题描述】:

我设置了一个输入框,要求用户选择一个范围。选择范围时,我希望选择自动调整为特定尺寸,以便用户可以在单击“确定”之前看到新的选择(在设置 myRange 之前)。

我已经设置了一个 Worksheet_SelectionChange 事件来处理调整选择的大小。问题是在输入框处于活动状态时 selectionChange 事件不起作用。

这是出现在我的模块中的代码 sn-p:

InputboxActive=True   
    Set myRange = Application.InputBox("Select a range", "Range Selection", Type:=8)
InputboxActive=False

此代码出现在我的工作表更改子中:

if InputboxActive=True then Target.resize(5,10).select

当输入框处于活动状态时,selectionChange 事件不会运行。我该如何解决这个问题?

任何帮助将不胜感激,谢谢

【问题讨论】:

  • 如果输入框不适合您,您可以在用户窗体上使用 refedit 控件。
  • 创建一个用户表单是一个选项,但我更想知道这是否是一个 Excel 功能,当内置输入框处于活动状态时,工作表事件被禁用,或者是否还有其他东西此事。如果这不是默认行为,那么我该如何识别问题

标签: excel vba input event-handling


【解决方案1】:

设置 myRange 后添加myRange.Select,即

Set myRange = Application.InputBox("Select a range", "Range Selection", Type:=8)
myRange.Select

这应该会触发Worksheet_SelectionChange 事件

【讨论】:

  • 我希望Worksheet_SelectionChange 事件在用户点击 OK 之前触发(在 myRange 设置之前,而输入框仍处于活动状态),以便他们可以确定这是正确的范围正在选择,如果不是他们想要选择的,请选择其他地方。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多