2009-05-12 28 views
22

Mam arkusz kalkulacyjny programu Excel z trzema arkuszami. Jeden z arkuszy zawiera formuły dla jednego z pozostałych arkuszy.Ukrywanie arkusza programu Excel z VBA

Czy istnieje programowy sposób na ukrycie arkusza zawierającego te formuły?

Odpowiedz

46

Aby ukryć z UI, stosowanie Format> Karta> Ukryj

Aby ukryć programowo, należy użyć właściwości obiektu WorksheetVisible. Jeśli robisz to programowo, możesz ustawić arkusz jako "bardzo ukryty", co oznacza, że ​​nie można go wyłączyć w interfejsie użytkownika.

ActiveWorkbook.Sheets("Name").Visible = xlSheetVeryHidden 
' or xlSheetHidden or xlSheetVisible 

Można również ustawić właściwość widoczny przez okienko właściwości do arkusza w VBA IDE (ALT + F11).

+1

To powinno być zaakceptowane jako poprawna odpowiedź. –

+0

@ MárioMeyrelles Nie na komputerze z programem Excel, więc nie mogę sam wypróbować - co jest ** bardzo ** ukryte ?! –

+1

oznacza to, że nie możesz go odkryć na wstążce (format> ukryj i odkryj> odkryć arkusz). Możesz go odkryć tylko przez VBA. – Tmdean

17

Można to zrobić programowo za pomocą makra VBA. Można dokonać arkusz ukryty lub bardzo ukryty:

Sub HideSheet() 

    Dim sheet As Worksheet 

    Set sheet = ActiveSheet 

    ' this hides the sheet but users will be able 
    ' to unhide it using the Excel UI 
    sheet.Visible = xlSheetHidden 

    ' this hides the sheet so that it can only be made visible using VBA 
    sheet.Visible = xlSheetVeryHidden 

End Sub 
5

Można to zrobić w jednej linii, tak długo, jak arkusz jest aktywny:

ActiveSheet.Visible = xlSheetHidden 

Jednak nie może chcesz to zrobić, szczególnie jeśli używasz dowolnych operacji "wybierz" lub używasz więcej operacji ActiveSheet.

15

Po prostu chciałem dodać trochę więcej szczegółów do udzielonych odpowiedzi. Można również użyć

sheet.Visible = False 

ukryć i

sheet.Visible = True 

odkryć.

Source

+0

Czy jest to sposób "ukryty" lub "bardzo ukryty"? – Ans

+1

Cóż, łączenie https://msdn.microsoft.com/en-us/VBA/Excel-VBA/articles/xlsheetvisibility-enumeration-excel i https://docs.microsoft.com/en-us/dotnet/visual- basic/language-reference/data-types/boolean-data-type, wygląda na to, że 'True' i' xlSheetVisible' mają wartość -1, a 'False' i' xlSheetHidden' to 0. Oznacza to, że 'sheet.Visible = False' jest równoważne 'sheet.Visible = xlSheetHidden'. –

Powiązane problemy