Boa tarde!
Encontrei nesse fórum um tópico com o mesmo título cuja solução, apresentada por @Nelson S, tem o seguinte código:
Public Sub PreencherVazios()
Dim wks As Worksheet
Dim rng As Range
Dim cel As Range
Application.ScreenUpdating = False
Set wks = ThisWorkbook.Worksheets("Plan1")
Set rng = wks.Range("M1:M" & wks.Rows.Count)
For Each cel In rng.Cells
If Len(Trim(cel)) = 0 Then cel = ""
Next cel
Set cel = Nothing
Set rng = Nothing
Set wks = Nothing
Application.ScreenUpdating = True
End Sub
Ele funciona muito bem pra mim, porém minha planilha possui um coluna que nunca terá células vazias (parecido com a chave primária do Access) e, baseado nesta coluna, preciso que outras três sejam preenchidas da mesma forma que seu código faz. Como esta planilha é atualizada toda semana, ela sempre aumentará de tamanho, impossibilitando estabelecer a ultima linha preenchida.
O que eu precisaria seria que, por exemplo, fosse percorrida a coluna B,C e E e sejam preenchidas somente as células vazias apenas enquanto contiver dados na coluna A. Ou seja, quando chegar na ultima linha com dados (baseando-se pela coluna A), a macro deveria ser interrompida. Talvez nem seja necessário um loop par isso.
Abraços,
Luiz
Postado : 29/05/2017 12:38 pm