Macros para eliminar hojas vacías

¿Cómo eliminar hojas vacías con macros en excel? Con VBA borrar todas menos las activas

1 respuesta

Respuesta

Prueba la siguiente:

Sub BorrarHojas()
  Dim sh As Worksheet
  Application.DisplayAlerts = False
  For Each sh In Sheets
    If WorksheetFunction.CountA(sh.UsedRange) = 0 And _
      WorksheetFunction.Count(sh.UsedRange) = 0 Then
      sh.Delete
    End If
  Next
End Sub

¡Gracias! Pero quería agregarle la siguiente línea para que no se borren ciertas hojas especificas.

worksheets("Iinterfaz").Active

¿Y perdón pero me marca error en la línea de sh.delete sabrás por que?

Sub BorrarHojas()
  Dim sh As Worksheet
  Application.DisplayAlerts = False
  For Each sh In thisworkbook.worksheets
    If WorksheetFunction.CountA(sh.UsedRange) = 0 And _
      WorksheetFunction.Count(sh.UsedRange) = 0 Then
      sh.Delete
    End If
  Next sh
End Sub

ya funciono le deje estos pequeños cambios, muchas gracias

Para que no se borren ciertas hojas especificas.

Escribe en Select Case, las hojas que no quieres borrar, te puse un par de ejemplos:

Sub BorrarHojas()
  Dim sh As Worksheet
  Application.DisplayAlerts = False
  For Each sh In Sheets
    Select Case sh.Name
      Case "Iinterfaz", "Hoja5", "etc"
      Case Else
        If WorksheetFunction.CountA(sh.UsedRange) = 0 And _
          WorksheetFunction.Count(sh.UsedRange) = 0 Then
          sh.Delete
        End If
    End Select
  Next
End Sub

Ya funciono le deje estos pequeños cambios, muchas gracias

Me alegra saber que ya te funciona. No ol vides valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas