/ / Listar hojas de trabajo ocultas - excel, excel-vba, vba

Listar hojas de trabajo ocultas - excel, excel-vba, vba

Tengo un registro de materiales que estoy creando.

Debido a la regulación cuando un material (cada materialtiene su propia hoja de trabajo con un número aleatorio de 3 dígitos agregado al final para permitir el mismo nombre varias veces) se elimina, en realidad no se puede eliminar, por lo que para evitarlo, mi libro oculta la hoja y el uso de una verificación de eliminación en la página de resumen oculta la fila apropiada

Sin embargo, con lo que estoy luchando es con una función para restaurar la hoja,

Tengo el código que necesito para hacer esto, sin embargo no puedo encontrar ninguna función para lista de hojas ocultas.

Esta lista se puede colocar en el libro de trabajo en una columna oculta, por lo que puedo hacer referencia a ella con mi macro, pero como dije no puedo encontrar de todos modos una lista de las hojas que están ocultas.

Gracias por tu ayuda

Respuestas

1 para la respuesta № 1

Puede agregar a su código que oculta la escritura para escribir el nombre de la hoja que está escondiendo en su otra pestaña oculta, y agregar el reverso a su código que lo muestra.

No está seguro de si lo que se muestra a continuación es aplicable a su situación, pero también puede incluir algo de código en los eventos de la hoja de trabajo para capturar cuando la hoja se hace invisible.

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

0 para la respuesta № 2

¿Esto ayuda ...

" 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 para la respuesta № 3

Las hojas ocultas pueden ser Oculto o Muy escondido, para capturar estos:

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