
Sou muito novo nisso, estou fazendo formatação condicional para destacar números acima da média de todos os valores consecutivos.
Preciso aplicar essa formatação a todas as linhas de todas as planilhas da pasta de trabalho.
Pelo que coletei, isso é o que tenho:
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
Mas quando executo isso, ele se aplica apenas às células ativas selecionadas. Como eu consertaria isso?
Responder1
Você precisa ter certeza de que o Range()
que está sendo usado é realmente o intervalo no arquivo ws
. Caso contrário, ele será executado apenas no 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
Mas isso funciona? Está um pouco "mais apertado", principalmente estou tentandoEvite usar.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: acabei de perceber ... Por que usar o For each r
loop, já que você está usando apenas uma linha?
Responder2
Preciso aplicar essa formatação a todas as linhas de todas as planilhas da pasta de trabalho.
Na verdade, é preciso prática para “saber fazer a pergunta certa”. Depois de fazer isso, uma pesquisa rápida:
Percorrer planilhas 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
Referência:https://support.microsoft.com/en-us/help/142126/macro-to-loop-through-all-worksheets-in-a-workbook