【发布时间】:2017-09-12 20:40:27
【问题描述】:
我想为 Excel 工作簿创建一个类似于 GUI 的界面,并且我不希望工作簿在关闭之前可见。但是,使工作簿不可见会使我的代码引用混乱,如果不进行大量修改,我就无法读取范围。我尝试最小化窗口,但这也最小化了表单。
有没有办法保持活动工作簿处于活动状态但不易显示,并且表单可见?
【问题讨论】:
-
如果发生这种情况:“但是,使工作簿不可见会使我的代码引用混乱,如果不进行大量修改,我就无法读取范围。”那么您可能在您的代码中使用
.Select或.Activate。这是一种不好的做法,强烈建议避免(许多未定义的问题和缓慢的代码)。如果是这种情况,谷歌如何避免同时使用它们,有很多教程。是的,删除它们可能需要做很多工作,但可以为您在以后的调试中节省大量时间,并使您的代码变得更好。 -
我原以为不需要保持工作簿处于活动状态 - 你不能只使用变量引用工作簿/工作表吗?这对我来说很好,我仍然可以在我喜欢的任何工作簿上引用任何工作表:
Private Sub Workbook_Open(): Application.Visible = False: UserForm1.Show: End Sub -
@DarrenBartrup-Cook 是的,我就是这么说的。不要使用
.Select和.Activate而是直接引用工作表,如Worksheets("MySheetName").Range("A1")。但我认为因为他说隐藏工作表会弄乱他正在使用.Select的引用,他必须将其更改为不使用.Select并直接引用。那么即使隐藏工作簿,引用仍然有效。 -
是的,对不起,我想我和你同时写了我的评论。在检查了我的一点代码之后,按照我所说的做了你已经发布了,但不想浪费 5 分钟来测试我的代码,所以无论如何都发布了。 :)
-
@DarrenBartrup-Cook 啊,不用抱歉,我以为你的评论是指我而不是他哈哈。这让我很困惑。现在更有意义的是,这条评论是针对 Viriax 的。