2009-05-21 321 views
8

隱藏的工作表/工作簿對可以在VBA代碼中做什麼有一些限制,如大多數SelectSelection語句以及來自ActiveSheet的任何內容,但我似乎無法找到任何限制條件的列表。在隱藏的工作表或工作簿上可以執行哪些Excel VBA操作?

Google,幫助系統中的內置文檔和MSDN網站都讓我失望。任何人都可以將我指向正確的方向嗎?

編輯: 打開工作簿與

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

,然後隱藏着

WB_Master.Windows(1).Visible = False 
+0

您可以詳細說明如何打開工作簿並使其不可見嗎? – 2009-05-21 16:48:57

回答

13

從Visual Basic for Applications幫助:

當一個對象是隱藏的,它從屏幕上移除,其Visible屬性設置爲False。用戶無法訪問隱藏對象的控件,但它們以編程方式可用於正在運行的應用程序,可用於通過自動化與應用程序通信的其他進程以及Windows中的計時器控件事件。

恐怕沒有太大的幫助,我無法通過Google找到其他任何東西。

正如您所說的,Select方法和Selection屬性在隱藏的工作表上不起作用,但它們應該在隱藏的Workbook上工作。 (如果我錯了,請糾正我的錯誤。)但是,通常情況下,無論如何選擇工作表中的範圍並不總是那麼高效,您最好使用Range屬性(它可以在隱藏的工作表上工作)。

編輯:

下面的代碼將改變A1的顏色:A8青色甚至當工作表是不可見的:

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 
+2

我通常遠離選擇,除非絕對必要,但我的具體問題是嘗試將背景顏色應用於工作簿上既隱藏又不是活動工作簿的單元格。儘管直接提到了工作簿,但只有在工作簿可見並激活時纔有效。 – 2009-05-21 14:45:30

9

您可以取消隱藏他們繞過任何限制的隱藏工作表沒有用戶意識到它,做你需要的任何東西,然後再把它們隱藏起來。

此示例假定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,這將防止它們被列在用戶如果他們試圖通過菜單或功能區取消隱藏它們。

相關問題