Tengo el siguiente problema: "Quiero que al abrir varios libros de Excel haya un evento que recorra todas las hojas de cada libro y las aplique un formato estándar para todas igual."
Para ello he desarrollado la siguiente macro, pero me da problemas:
Private Sub Workbook_Open()
Application.ScreenUpdating = False
Dim libro As Workbook
Dim hoja As Worksheet
For Each libro In Workbooks
Set libro = ActiveWorkbook.Name
For Each hoja In Worksheets
Set hoja = ActiveWorksheet.Name
With Sheets(hoja).Select
With Cells
' Tamaño de las celdas...
.ColumnWidth = 10
.RowHeight = 15
' Alineación de las celdas...
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
' Fuente de las celdas...
.Font.Name = "Calibri"
.Font.Size = 10
End With
End With
Next hoja
Next libro
MsgBox "La hoja de datos " & hoja.Name & " del libro " & libro.Name & " ha sido formateada correctamente."
End Sub
Al parecer las variables "libro" y "hoja" están declaradas como un objeto (obvio... porque de lo contrario, no funcionarían), pero al aplicar el método ActiveWorksheet.Name no me reconoce el tipo de dato porque pasa a ser de tipo String.
No sé cómo solucionar este problema...
Utilizo la versión de Excel 2019.
Gracias.
Featured Replies
Archivado
Este tema está ahora archivado y está cerrado a más respuestas.
Hola amigos de la comunidad AyudaExcel,
Tengo el siguiente problema: "Quiero que al abrir varios libros de Excel haya un evento que recorra todas las hojas de cada libro y las aplique un formato estándar para todas igual."
Para ello he desarrollado la siguiente macro, pero me da problemas:
Private Sub Workbook_Open() Application.ScreenUpdating = False Dim libro As Workbook Dim hoja As Worksheet For Each libro In Workbooks Set libro = ActiveWorkbook.Name For Each hoja In Worksheets Set hoja = ActiveWorksheet.Name With Sheets(hoja).Select With Cells ' Tamaño de las celdas... .ColumnWidth = 10 .RowHeight = 15 ' Alineación de las celdas... .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter ' Fuente de las celdas... .Font.Name = "Calibri" .Font.Size = 10 End With End With Next hoja Next libro MsgBox "La hoja de datos " & hoja.Name & " del libro " & libro.Name & " ha sido formateada correctamente." End Sub
Al parecer las variables "libro" y "hoja" están declaradas como un objeto (obvio... porque de lo contrario, no funcionarían), pero al aplicar el método ActiveWorksheet.Name no me reconoce el tipo de dato porque pasa a ser de tipo String.
No sé cómo solucionar este problema...
Utilizo la versión de Excel 2019.
Gracias.