标签的 Excel 用户表单加速键不起作用

Posted

技术标签:

【中文标题】标签的 Excel 用户表单加速键不起作用【英文标题】:Excel Userform accelerator key for a label doesn't work 【发布时间】:2015-07-21 13:57:01 【问题描述】:

我的宏中有一个用户表单。我用标签替换了 ActiveX 按钮。每个 ActiveX 按钮都有一个加速键,它们都按预期工作。将 ActiveX 按钮更改为标签后,加速键不再适用于标签。我不知道。我将不胜感激任何让加速键再次工作的建议。感谢您的帮助

【问题讨论】:

你是什么意思他们不工作?如果您将加速键放在标签上,则 Tab 键顺序中的下一个控件(可以获得焦点)将获得焦点。这没有发生吗? Tab 键顺序中的下一个控件是什么? @Dick Kuseika........当用户点击 Alt + A 时,没有任何事情发生,就像以前一样。当我使用按钮而不是标签时。下一个控件是另一个标签。此用户表单中有许多框架、文本框和标签。谢谢 我想它看到下一个控件是一个标签,因为它不能获得焦点,所以什么也不做。你想让它做什么?为什么要从命令按钮改为标签? @Dick Kusleika............用户在按下 ActiveX 按钮时开始出现问题。有人建议将所有 ActiveX 按钮更改为形状或标签。原来是 IT 政策导致了这个问题。我只听说 1 位用户喜欢使用加速键。当使用加速键(或按下标签)时,它会启动一个子例程,将数据从用户窗体移动到宏中的一张表。谢谢………… 【参考方案1】:

Label 控件的 Accelerator 属性的行为是将焦点设置到 Tab 键顺序中的下一个控件。命令按钮的 Accelerator 的行为是调用其 Click 事件。您不能从加速键调用标签的单击事件或任何其他事件。

如果你想使用标签,你可以在标签之后放置文本框,并在 Textbox_Enter 事件中放置你想要的任何代码。我创建了两个标签和两个文本框。我将每个文本框的高度和宽度设为 1,因此它们几乎不可见。当按下标签的加速键时,焦点转到文本框,甚至触发了 Enter。

Private Sub TextBox1_Enter()

    'do the thing the button would do

End Sub

有点破解和一些额外的设置,但它可以工作。

【讨论】:

@Dick Kusleika.........感谢您提供的信息。我最终将标签改回 ActiveX 按钮,并且加速键再次起作用。我很感激这些信息,并将牢记在未来

以上是关于标签的 Excel 用户表单加速键不起作用的主要内容,如果未能解决你的问题,请参考以下文章

为啥保留重复记录时h2复合主键不起作用?

excel条件格式不起作用?

Select2 - 多个标签不起作用

js 中 onkeyup 不起作用

jsp 中onclick不起作用

为啥使用整数作为 pymongo 的键不起作用?