带有第二个显示屏的Active X命令按钮

时间:2018-11-07 18:03:25

标签: excel excel-vba activex

我将Active X命令按钮放在Excel工作簿中。当工作簿显示在主监视器上时,它们工作得很好,但是当工作簿显示在辅助监视器上时,它们不能正常工作。我该如何解决?

我不确定它是否特定于硬件,但我运行的是MS Surface Pro5。在家里,它通过两个监视器连接到Surface Dock。设备屏幕将复制到一个监视器(主),而桌面扩展到另一台。在旅途中,我会通过微型显示端口使用便携式监视器。在两种配置中都会出现此问题。

3 个答案:

答案 0 :(得分:1)

布拉德,我有一个同样的问题,当连接到辅助显示器时,activex按钮变得不可点击。问题仅在于分辨率不同。确保辅助监视器的分辨率与主监视器的分辨率相同。在我的情况下,我的辅助显示器是一台投影仪,我将其分辨率更改为1366x768,这是笔记本电脑中使用的分辨率。然后它起作用了。

答案 1 :(得分:0)

不幸的是,我遇到了同样的问题。它与硬件无关,但与软件有关。如果您更改屏幕或投影仪的分辨率(以我为例),则活动的x按钮将开始增大和变形。

我使用的解决方案是在每个活动的x操作上运行此代码(只需为call创建一个sub),以确保按钮/标签等在正确的位置

Set wbkWorkbook1 = ThisWorkbook

Set Rng = wbkWorkbook1.Worksheets("WS1").Range("A14:F15")
wbkWorkbook1.Worksheets("WS1").BTN.Width = Rng.Width
wbkWorkbook1.Worksheets("WS1").BTN.Height = Rng.Height
wbkWorkbook1.Worksheets("WS1").BTN.Left = wbkWorkbook1.Worksheets("WS1").Range(wbkWorkbook1.Worksheets("WS1").BTN.TopLeftCell.Address).Left
wbkWorkbook1.Worksheets("WS1").BTN.Top = wbkWorkbook1.Worksheets("WS1").Range(wbkWorkbook1.Worksheets("WS1").BTN.TopLeftCell.Address).Top

此代码的作用:在本示例中,工作表上有一个活动的X按钮,标签为“ BTN ”,名称为“ WS1 ”。 该脚本运行后,会将BTN对准 A14:F15 范围。

因此,如果您更改分辨率并运行此代码,则会重新调整您的活动x控件。

您可以肯定地使用do ... loop until过程来遍历所有控件。

答案 2 :(得分:0)

几个月前,我在计算机上处​​理了相同的问题,几天前,我结束了将ActiveX按钮更改为表单控件的操作,但同样的事情发生了,但是这次我发现了与之相关的IT支持我工作的公司,您必须在已连接的所有显示器上匹配“屏幕比例”,这应该可以解决问题。

我知道,这很愚蠢,但这就是解决方案。