Excel VBA – 可见纸张数

我有以下代码excel文件来select工作表。 另外还有几张用“xlSheetVeryHidden”隐藏的工作表。

我的问题是与这些代码出现隐藏表,我不想显示隐藏表。 怎么做?

Private Sub CommandButton1_Click() Dim myList As String Dim mySht For i = 1 To ActiveWorkbook.Sheets.Count myList = myList & i & " - " & ActiveWorkbook.Sheets(i).Name & " " & vbCr Next i mySht = InputBox("Select Sheet to go to." & vbCr & myList) ActiveWorkbook.Sheets(CInt(mySht)).Select End Sub 

谢谢,

Udara

表格可以有三个属性。 xlSheetHiddenxlSheetHiddenxlSheetVeryHiddenxlSheetVisible

所以你可以检查xlSheetHiddenxlSheetVeryHidden或者直接检查xlSheetVisible

例如

 For Each oSheet In ActiveWorkbook.Sheets '~~> Loop through only visible sheets If oSheet.Visible = xlSheetVisible Then ' '~~> Rest of your code ' End If Next oSheet 

您可以通过检查Visible属性来确定工作表是否为“xlSheetVeryHidden”。

以下代码可能会显示除“xlSheetVeryHidden”属性外的所有工作表。

 Private Sub CommandButton1_Click() Dim myList As String Dim i as integer Dim oSheet As Worksheet Dim mySht As String i = 1 For Each oSheet In ActiveWorkbook.Sheets If oSheet.Visible <> xlSheetVeryHidden Then 'Only this line is changed from "Parash J"'s code. myList = myList & i & " - " & oSheet.Name & " " & vbCr i = i + 1 End If Next oSheet mySht = InputBox("Select Sheet to go to." & vbCr & myList) ActiveWorkbook.Sheets(mySht).Select End Sub 

代码已经修复。 代码在Excel 2013中运行良好。

即使您已经使用xlSheetVeryHidden选项隐藏工作表,它将在VBA代码中可用。 您将需要绕过FOR LOOP中的表单。 您只需要包含If语句来检查sheetname = "sheet1"那么不要在列表中包含该表。

检查这个代码:

 Private Sub CommandButton1_Click() Dim myList As String Dim i as integer Dim mySht i = 1 For Each oSheet In ActiveWorkbook.Sheets ''If oSheet.Name <> "Sheet1" Then '' to check for particular sheet. If oSheet.Visible <> xlSheetVeryHidden Then '' For every sheet, set as xlsheetveryhidden myList = myList & i & " - " & oSheet.Name & " " & vbCr i = i + 1 End If Next oSheet mySht = InputBox("Select Sheet to go to." & vbCr & myList) ActiveWorkbook.Sheets(CInt(mySht)).Select End Sub 

注意: Sheet1是非常隐藏的表格,您可以根据需要命名。