2014-11-21 53 views
0

我有excel文件和以下代码来选择纸张。 也有几张用“xlSheetVeryHidden”隐藏。Excel vba - 可见纸张数

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

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

回答

0

即使你有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 非常隐藏的工作表,您可以根据需要命名。

+0

谢谢帕雷什,我仍然在改变计划,因为其他功能的影响。 – Hewage 2014-11-21 06:09:44

+0

Paresh,你对这个运行时错误有什么想法吗? – Hewage 2014-11-21 06:38:16

+0

在FUMU的代码中,他将mySht定义为工作表。因此错误。 – 2014-11-21 07:17:48

1

您可以通过检查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年

+0

感谢您的快速回复,它是用另外几个函数编写的。我仍然试图改变它。 Udara – Hewage 2014-11-21 06:08:15

+0

亲爱的Fumu,仍然存在以下错误 – Hewage 2014-11-21 06:31:42

+0

mySht = InputBox(“Select Sheet to go。”&vbCr&myList) – Hewage 2014-11-21 06:32:48

2

表可以有三个属性.VisiblexlSheetHiddenxlSheetVeryHiddenxlSheetVisible

所以,你可以检查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