
Soy muy nuevo en esto, estoy aplicando formato condicional para resaltar los números por encima del promedio de todos los valores seguidos.
Necesito aplicar este formato a todas las filas de todas las hojas del libro.
De lo que he recopilado esto es lo que tengo:
Sub AllSheets()
Dim ws As Worksheet
For Each ws In Worksheets
Range("A1:S1").Copy
For Each r In Selection.Rows
r.PasteSpecial (xlPasteFormats)
Next r
Application.CutCopyMode = False
Next ws
End Sub
Pero cuando ejecuto esto, sólo lo aplica a las celdas seleccionadas activas. ¿Cómo solucionaría esto?
Respuesta1
Debe asegurarse de que lo Range()
que se está utilizando sea realmente el rango del archivo ws
. De lo contrario, simplemente se ejecuta en Activesheet.
Dim ws As Worksheet
For Each ws In Worksheets
ws.Range("A1:S1").Copy
For Each r In Selection.Rows
r.PasteSpecial (xlPasteFormats)
Next r
Application.CutCopyMode = False
Next ws
End Sub
Pero, ¿esto funciona? Es un poco más "apretado", principalmente estoy tratando deevitar el uso de.Selection
Dim ws As Worksheet
For Each ws In Worksheets
ws.Range("A1:S1").Copy ' Or replace this with actual range, not just `Selection`
For Each r In ws.Range("A1:S1").Rows
r.PasteSpecial (xlPasteFormats)
Next r
Next ws
End Sub
Editar: me acabo de dar cuenta... ¿Por qué usar el For each r
bucle, ya que de todos modos solo estás usando una fila?
Respuesta2
Necesito aplicar este formato a todas las filas de todas las hojas del libro.
De hecho, se necesita práctica para "saber hacer la pregunta correcta". Una vez que puedas hacer eso, una búsqueda rápida:
Recorrer hojas de trabajo vba
Sub WorksheetLoop()
Dim WS_Count As Integer
Dim I As Integer
' Set WS_Count equal to the number of worksheets in the active
' workbook.
WS_Count = ActiveWorkbook.Worksheets.Count
' Begin the loop.
For I = 1 To WS_Count
' Insert your code here.
' The following line shows how to reference a sheet within
' the loop by displaying the worksheet name in a dialog box.
MsgBox ActiveWorkbook.Worksheets(I).Name
Next I
End Sub
Referencia:https://support.microsoft.com/en-us/help/142126/macro-to-loop-through-all-worksheets-in-a-workbook