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

db2dz4w8  于 2023-03-04  发布在  其他
关注(0)|答案(5)|浏览(136)

我在Excel工作簿中放置了Active X命令按钮。当工作簿显示在主监视器上时,它们工作正常,但当工作簿显示在辅助监视器上时,它们就不能工作了。如何解决此问题?
我不确定它是否是硬件特定的,但我运行的是MS表面临5。在家里,它连接到一个表面码头与两个显示器;设备屏幕复制到一个显示器(主显示器),桌面扩展到另一个显示器。我在外出时通过迷你显示端口使用便携式显示器。两种配置都出现问题。

qxgroojn

qxgroojn1#

后藤:文件-〉选项-〉常规-〉在“使用多个显示器时”下选择“优化兼容性(需要重新启动应用程序)”

pcrecxhr

pcrecxhr2#

布拉德,我有同样的问题,activex按钮变得不可点击时,得到连接到第二显示器。这个问题是完全因为不同的分辨率。确保第二显示器有相同的分辨率作为主显示器。在我的情况下,我的第二显示器是一个投影仪,我改变了它的分辨率为1366x768,这是正在使用的笔记本电脑。然后它的工作。

dpiehjr4

dpiehjr43#

不幸的是,我也遇到了同样的问题。这与硬件无关,而是与软件有关。如果你改变屏幕或投影仪的分辨率(在我的情况下),active x按钮开始增长和变形。
我使用的解决方案是,在每个ActiveX操作上运行此代码(只需为sub创建一个call),以确保按钮/标签等在正确的位置。

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

此代码的用途:在此示例中,我们在名为“WS 1”的工作表上有一个标记为“BTN"的活动X按钮。此脚本运行后,将BTN与A14:F15范围对齐。
因此,如果你改变分辨率并运行这段代码,你的active x控件将被重新调整。
你可以通过一个do ... loop until程序来完成所有的控件。

lh80um4z

lh80um4z4#

几个月前,我在电脑上遇到了同样的问题,我结束了将ActiveX按钮更改为表单控件的操作,几天前,同样的事情发生了,但这一次我发现与我工作的公司的IT支持沿着,你必须匹配所有连接的显示器上的屏幕比例,这应该可以解决问题。
我知道,很愚蠢,但这是解决办法。

h5qlskok

h5qlskok5#

另一个可能导致此问题的问题(至少在Excel 2016中,这是我正在使用的版本)是当您打开第二个视图窗口,并试图在活动窗口不是窗口1时单击Active X控件按钮。如果您导航回窗口1,选择带有按钮的工作表并单击它,它将工作。
正如其他人在这篇文章和其他相关文章中所说的,使用表单控件按钮不会有这个问题,但你需要把代码放入一个模块中,并将表单按钮链接到该模块中的子例程。然而,我总是有点担心把用于特定工作表的代码放入模块中,而不是放在工作表本身上,但这只是我自己。我不是最强的VBA程序员,所以我总是努力确保代码在正确的对象上工作。

相关问题