2014-11-21 55 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