在隐藏的工作表或工作簿上可以执行哪些Excel VBA操作?

隐藏的工作表/工作簿对于在VBA代码中可以做什么有一些限制,比如大多数SelectSelection语句,以及来自ActiveSheet任何东西,但是我似乎找不到任何限制的列表。

Google,帮助系统中的内置文档以及MSDN的网站都让我失望了。 任何人都可以指向正确的方向吗?

编辑:工作簿打开

 Set WB_Master = Workbooks.Open(Filename:=PATH_Master, ReadOnly:=False) 

然后隐藏起来

 WB_Master.Windows(1).Visible = False 

从Visual Basic for Applications帮助:

当一个对象被隐藏时,它被从屏幕上移除,并且其Visible属性被设置为False。 用户无法访问隐藏对象的控件,但是它们可以通过编程方式提供给正在运行的应用程序,也可以通过自动化与应用程序进行通信的其他进程以及Windows中的计时器控件事件。

我害怕的帮助不大,而且我无法通过Googlefind其他的东西。

正如你自己所说的,Select方法和Selection属性不能在隐藏的工作表上工作,但他们应该在隐藏的工作簿上工作。 (如果我错了,请纠正我的错误。)但是,通常情况下,在工作表中select范围并不总是那么高效,你最好使用Range属性(它可以在隐藏工作表上工作)。

编辑:

以下代码即使在Worksheet不可见时也会将A1:A8的颜色更改为Cyan:

 Dim book2 As Workbook Set book2 = Workbooks.Open("C:\Book2.xls") book2.Worksheets("Sheet1").Visible = False book2.Windows(1).Visible = False With book2.Worksheets("Sheet1").Range("A1:E8").Interior .ColorIndex = 8 .Pattern = xlSolid .PatternColorIndex = xlAutomatic End With book2.Windows(1).Visible = True book2.Worksheets("Sheet1").Visible = True 

你可以避开任何隐藏页面的限制,通过在用户没有意识到的情况下隐藏它们,做任何你需要的,然后再隐藏它们。

这个例子假定Sheet2是隐藏的。

 Sub DoStuffToAHiddenSheetWithoutTheUserKnowingIt() 'turns off screen repainting so the user can't see what you're doing 'incidentally, this dramatically speeds up processing of your code Application.ScreenUpdating = False 'note that if you're stepping through your code, screenupdating will be true anyway 'unhide the sheet you want to work with Sheets("sheet2").Visible = True 'do whatever you want here, including selecting cells if you want 'Scagnelli is right though, only select cells if you have to 'when you're finished, hide the sheet again Sheets("sheet2").Visible = False 'make sure you turn screenupdating back on, or Excel will be useless Application.ScreenUpdating = True End Sub 

另一个有用的技巧,如果你想隐藏表是将其设置为xlVeryHidden,这将阻止他们列出给用户,如果他们试图通过菜单或function区取消隐藏。