Excel 带第二显示的活动X命令按钮

Excel 带第二显示的活动X命令按钮,excel,vba,activex,Excel,Vba,Activex,我将活动的X命令按钮放在Excel工作簿中。当工作簿显示在主监视器上时,它们工作正常,但当工作簿显示在辅助监视器上时,它们工作不正常。我该如何解决这个问题 我不确定它是否特定于硬件,但我运行的是MS Surface Pro 5。在家里,它连接到一个带有两个监视器的地面码头;设备屏幕复制到一个显示器(主显示器),桌面扩展到另一个显示器。在旅途中,我通过迷你显示端口使用便携式显示器。这两种配置都会出现问题 不幸的是,我也有同样的问题。这与硬件无关,而是与软件有关。如果更改屏幕或投影仪的分辨率(在我的

我将活动的X命令按钮放在Excel工作簿中。当工作簿显示在主监视器上时,它们工作正常,但当工作簿显示在辅助监视器上时,它们工作不正常。我该如何解决这个问题


我不确定它是否特定于硬件,但我运行的是MS Surface Pro 5。在家里,它连接到一个带有两个监视器的地面码头;设备屏幕复制到一个显示器(主显示器),桌面扩展到另一个显示器。在旅途中,我通过迷你显示端口使用便携式显示器。这两种配置都会出现问题

不幸的是,我也有同样的问题。这与硬件无关,而是与软件有关。如果更改屏幕或投影仪的分辨率(在我的例子中),活动的x按钮将开始增长和变形

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

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
此代码的作用:在本例中,在名为“WS1”的工作表上有一个标记为“BTN”的活动X按钮。 一旦该脚本运行,它将BTN对齐到A14:F15范围内

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


您可以使用
do。。。循环直到
过程确定。

布拉德,我遇到了同样的问题,activex按钮在连接到辅助显示器时变得不可点击。问题完全是因为不同的解决方案。确保辅助监视器的分辨率与主监视器的分辨率相同。在我的例子中,我的第二个显示器是一个投影仪,我把它的分辨率改为1366x768,这就是笔记本电脑所使用的分辨率。然后成功了

几个月前,我在一台计算机上处理了同样的问题,我结束了将ActiveX按钮更改为窗体控件的过程,几天前,同样的事情发生了,但这次我发现,随着我工作的公司的IT支持,你必须匹配你连接的所有显示器上的屏幕比例,这应该能解决问题


我知道,这很愚蠢,但这就是解决办法。

sdda,感谢您的回复。我的问题不在于按钮改变大小,而是它们完全不起作用。将工作簿拖动到主显示,一切正常;把它拖到第二个屏幕上,你就不能再点击按钮了。Karthick,谢谢你的回复,我会回去玩分辨率。这是有意义的,因为与普通显示器相比,Surface Pro的纵横比更接近正方形。(3:2对16:9)