我們可以隱藏工作表,讓其對最終用戶不可見。如下圖所示,在工作表標(biāo)簽Sheet1中單擊右鍵,在彈出的菜單中選擇“隱藏”,將工作表Sheet1隱藏。 上述操作由Excel宏錄制器錄制的代碼如下: Sub Macro1() ' ' Macro1 Macro ' 由完美Excel創(chuàng)建 '
' Sheets('Sheet1').Select ActiveWindow.SelectedSheets.Visible = False End Sub
Visible屬性用于設(shè)置工作表的可見狀態(tài),例如上面操作中設(shè)置工作表Sheet1的Visible屬性為False,使其隱藏。接下來,如果運(yùn)行下面的語句: Sheets('Sheet1').Visible = True 工作表Sheet1將重新可見。
Visible屬性也可返回指定工作表的可見狀態(tài)。語句: Sheets('Sheet1').Visible 返回的值表明工作表的可見狀態(tài)。其返回值是一個xlSheetVisibility常量:
注意,工作簿中必須至少有一個可見工作表。 可以在VBE編輯器的屬性窗口設(shè)置相應(yīng)工作表的可見狀態(tài),如下圖所示。 當(dāng)然,除本文開頭設(shè)置Visible屬性值為False或者True來使工作表隱藏/可見外,還可以設(shè)置上述常量值來使工作表隱藏或者可見。例如,下面的語句: Worksheets('Sheet2').Visible = xlSheetVeryHidden 使工作表Sheet2隱藏,并且在Excel界面的工作表標(biāo)簽中單擊右鍵時不能使其恢復(fù)可見。此時,必須在VBE界面設(shè)置該工作表的Visible屬性或者使用代碼設(shè)置Visible屬性使該工作表可見。
示例1:統(tǒng)計工作簿中可見工作表數(shù)量 下面的程序?qū)⒔y(tǒng)計工作簿中可見工作表的數(shù)量并顯示: Sub CountVisibleWorksheets() Dim i As Long Dim lngNum As Long
lngNum = 0
'遍歷工作表 For i = 1 To Sheets.Count '如果工作表可見則統(tǒng)計 If Sheets(i).Visible =xlSheetVisible Then lngNum = lngNum 1 End If Next
MsgBox '工作簿中可見工作表的數(shù)量是:' & lngNum End Sub 對于默認(rèn)帶有3個工作表的工作簿,如果使用上文中的代碼將工作表Sheet2隱藏后,統(tǒng)計的可見工作表數(shù)為: 可以將上述代碼轉(zhuǎn)換為通用的函數(shù)過程,供其它過程在需要時調(diào)用: '統(tǒng)計工作簿中所有可見工作表的數(shù)量 Function VisibleSheetsNum() As Long Dim i As Long Dim lngNum As Long
lngNum = 0
'遍歷工作表 For i = 1 To Sheets.Count '如果工作表可見則統(tǒng)計 If Sheets(i).Visible =xlSheetVisible Then lngNum = lngNum 1 End If Next
VisibleSheetsNum = lngNum End Function
示例2:隱藏指定的工作表 下面的代碼將隱藏指定的工作表,并指定了隱藏方式。 Sub HideWorksheet(strName As String, blnVeryHidden As Boolean) '如果blnVeryHidden值為True,則深度隱藏工作表 If blnVeryHidden Then Worksheets(strName).Visible = xlSheetVeryHidden Else Worksheets(strName).Visible= xlSheetHidden End If End Sub 下面的語句代碼調(diào)用HideWorksheet過程,隱藏工作表Sheet1: HideWorksheet 'Sheet1', True 在隱藏指定的工作表之前,我們可以使用《Excel VBA解讀(69):工作表名稱——Name屬性》中示例4:檢查工作表是否已存在來檢查指定名稱的工作表是否存在,然后進(jìn)行下一步操作。
示例3:使用工作簿中的工作表全部可見 有時,工作簿中有多個隱藏的工作表,可以遍歷工作表,使所有工作表都可見。 下面的代碼取消隱藏工作簿中的所有工作表: Sub UnhideAllWorksheets() Dim ws As Worksheet
For Each ws In Worksheets ws.Visible =xlSheetVisible Next ws End Sub 本文屬原創(chuàng)文章,轉(zhuǎn)載請聯(lián)系我(xhdsxfjy@163.com)或者注明出處。 歡迎在下面留言,完善本文內(nèi)容,讓更多的人學(xué)到更完美的知識。 |
|