/ / Lista ukrytych arkuszy - excel, excel-vba, vba

Lista ukrytych arkuszy - excel, excel-vba, vba

Mam rejestr materiałów, który tworzę

Ze względu na regulację, kiedy materiał (każdy materiałma swój własny arkusz z 3-cyfrową liczbą losową dodaną na końcu, aby wielokrotne zezwolić na tę samą nazwę) jest usuwany, nie może być faktycznie usunięty, więc aby obejść ten problem, mój skoroszyt ukrywa arkusz i używając czeku usuwania na stronie podsumowania ukrywa się odpowiedni wiersz.

Jednak to, z czym walczę, to funkcja przywracania arkusza,

Mam kod, który muszę zrobić, ale nie mogę znaleźć żadnej funkcji lista ukrytych arkuszy.

Ta lista może być umieszczona w książce roboczej w ukrytej kolumnie, dzięki czemu mogę odwołać się do niej za pomocą mojego makra, ale jak powiedziałem, nie mogę znaleźć listy tylko ukrytych arkuszy.

Dzięki za pomoc

Odpowiedzi:

1 dla odpowiedzi № 1

Możesz dodać do swojego kodu, który ukrywa się, aby napisać nazwę arkusza, który ukrywa dla twojej innej ukrytej zakładki, i dodać odwrotność do kodu, który go odkrywa.

Nie masz pewności, czy poniższe zasady odnoszą się do Twojej sytuacji, ale możesz także umieścić kod w zdarzeniach arkusza, aby uchwycić, gdy arkusz jest niewidoczny

Private Sub Worksheet_Deactivate()
If Me.Visible = xlSheetHidden Then MsgBox "I have been hidden"
End Sub

0 dla odpowiedzi nr 2

Czy to pomaga ..

" Function to be used in array formula on sheet to list hidden sheets
Public Function ListHiddenSheets()
Dim hiddenSheets As New dictionary

Dim sheet As Worksheet
For Each sheet In Worksheets
If sheet.Visible <> xlSheetVisible Then hiddenSheets.Add sheet.Name, Null
Next sheet

Dim vRes() As Variant
ReDim vRes(0 To hiddenSheets.Count, 0 To 0)

Dim idx As Integer
For idx = 0 To hiddenSheets.Count - 1
vRes(idx, 0) = hiddenSheets.keys(idx)
Next idx

ListHiddenSheets = vRes
End Function

?


0 dla odpowiedzi № 3

Ukryte arkusze mogą być Ukryty lub VeryHidden, aby uchwycić te:

ub ListEm()
Dim ws As Worksheet
Dim StrHid As String
Dim strVHid As String
For Each ws In ActiveWorkbook.Worksheets
Select Case ws.Visible
Case xlSheetVisible
Case xlSheetHidden
StrHid = StrHid & ws.Name & vbNewLine
Case Else
strVHid = strVHid & ws.Name & vbNewLine
End Select
Next
If Len(StrHid) > 0 Then MsgBox StrHid, vbOKCancel, "Hidden Sheets"
If Len(strVHid) > 0 Then MsgBox strVHid, vbOKCancel, "Very Hidden Sheets"
End Sub