Excel VBA Do-Loop para copiar e colar para preencher células vazias em cada linha

Excel VBA Do-Loop para copiar e colar para preencher células vazias em cada linha

Preciso de ajuda sobre como aplicar um loop do Excel VBA adequado ou copiar o conteúdo da célula e colar o próximo conjunto de células vazias em cada linha. À medida que percorre cada linha, ele copia e cola apenas as próximas células vazias e novamente copia o conteúdo da próxima célula preenchida e cola nas próximas células vazias até que cada linha seja preenchida. Preciso aplicar isso a uma tabela que contém cerca de 5.000 linhas. Qualquer ajuda será muito apreciada. A tabela original e o resultado esperado da tabela devem ser os seguintes: As tabelas de amostra

Responder1

O abaixo deve resolver o problema. Observe que o texto abaixo substituirá a tabela apenas por valores; portanto, se sua tabela tiver fórmulas, as fórmulas serão perdidas à medida que forem substituídas por valores.

Sub SuperUserHelp()

  Dim TempArray As Variant, x As Long, y As Long
  Dim ValueNow As Variant, SheetName As String, TableAddress As String

  SheetName = "Sheet1"   'Set your sheet name here
  TableAddress = "A1:E5" 'Set your table range here

  TempArray = Sheets(SheetName).Range(TableAddress).Value

  For x = 1 To UBound(TempArray, 1)

    ValueNow = Empty 'new row defaults to

    For y = 1 To UBound(TempArray, 2)
      If TempArray(x, y) = Empty Then
        TempArray(x, y) = ValueNow
      Else
        ValueNow = TempArray(x, y)
      End If
    Next y

  Next x

  Sheets(SheetName).Range(TableAddress).Value = TempArray

End Sub

informação relacionada