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
表格可以有三个属性。 xlSheetHidden
即xlSheetHidden
, xlSheetVeryHidden
和xlSheetVisible
所以你可以检查xlSheetHidden
和xlSheetVeryHidden
或者直接检查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是非常隐藏的表格,您可以根据需要命名。