Como preencher uma coluna inteira (não consistente) com base no valor anterior do Excel?

Como preencher uma coluna inteira (não consistente) com base no valor anterior do Excel?

Então, digamos que eu tenha os seguintes valores:

A2=a, A5=b, A6=c, A10=d

Basicamente, quero completar os valores anteriores da seguinte forma:

A2:A4=a,A5=b, A6:A9=c,A10:A99999=d

Tentei o seguinte: inseri uma nova coluna à direita e fiz algo assim: =IF(A2="",A1,A2)mas funciona apenas para as 2 primeiras instâncias da coluna B, pois há mais lacunas e nem sempre há o mesmo número de lacunas. Estou faltando alguma coisa, obviamente.

Obrigado.

Responder1

Você não precisa do VBA para isso, você quase conseguiu com sua própria fórmula. Você só precisa usar B1 em vez de A1. Então B2 conteria:

=IF(A2="",B1,A2)

captura de tela

Responder2

Experimente esta pequena macro:

Sub FillDown()
   Dim rng As Range, r As Range
   Set rng = Range("A2:A99999")

   Application.ScreenUpdating = False
      For Each r In rng
         v = r.Value
         If v = "" Then r.Value = r.Offset(-1, 0)
      Next r
   Application.ScreenUpdating = True
End Sub

As macros são muito fáceis de instalar e usar:

  1. ALT-F11 abre a janela VBE
  2. ALT-I ALT-M abre um novo módulo
  3. cole o material e feche a janela do VBE

Se você salvar a pasta de trabalho, a macro será salva com ela. Se você estiver usando uma versão do Excel posterior a 2003, deverá salvar o arquivo como .xlsm em vez de .xlsx

Para remover a macro:

  1. abra a janela VBE como acima
  2. limpar o código
  3. feche a janela do VBE

Para usar a macro do Excel:

  1. ALT-F8
  2. Selecione a macro
  3. Toque em EXECUTAR

Para saber mais sobre macros em geral, consulte:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

e

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

As macros devem estar habilitadas para que isso funcione!

informação relacionada