Como preencher uma única coluna de células com um número que é incrementado quando encontra uma célula que abrange várias colunas? (Captura de tela)

1

Estou tentando organizar alguns dados que foram despejados de um sistema proprietário em algo que eu possa usar. Na coluna A, quero colocar um número "agrupar por".

Ele despeja essa longa fileira que separa as diferentes duplicatas. Sempre que ele atinge uma linha de abrangência, quero que ele incremente o contador e exclua a linha de abrangência.

Os dados anteriores são isto (eu chamei manualmente A3, A4, A6, A7, A8, A10, A11):

Eugostariaqueosdadosdepoisfossemassim:

Alguma idéia de como fazer isso?

Solução final possibilitada pelo comentário abaixo:

Public Sub CleanMeImFilthy()

    Dim intCounter As Integer
    Dim i As Integer

    i = 1

    For intCounter = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
       If Trim(LCase(Left(Cells(intCounter, 1).Value, 14))) = "duplicate key:" Then
         Rows(intCounter).Delete
         i = i + 1
       Else
         Rows.Cells(intCounter, 1) = i
       End If
    Next

End Sub
    
por Alex K 26.05.2011 / 22:15

1 resposta

2

Experimente a seguinte parte do VBA:

Public Sub CleanMeImFilthy

  Dim intCounter as Integer

  For intCounter = ActiveSheet.UsedRange.Rows.Count to 1 Step -1
    If Trim(Lcase(Left(Cells(intCounter,1).Value,14))) = "duplicate key:" Then
      Rows(intCounter).Delete
    End If
  Next

End Sub 

Tudo o que o código faz é:

  1. Começa na parte inferior da coluna A - onde 'bottom' é a última linha que foi usada.
  2. Verifica se a versão em minúsculas dos primeiros 14 caracteres do texto na célula atual, que foi despojada de espaços, é igual à chave duplicada: '
  3. Supondo que todas as linhas que você precisa remover contenham isso, exclui a linha

Comecei de baixo e trabalhei como é mais limpo devido a não excluir uma linha, o que significa que a linha abaixo de você é agora você.

Como você postou isso no Stack Overflow originalmente, estou bastante confiante de que você pode adicioná-lo ao Excel. Se não:

  1. Copie o código daqui
  2. Pressione ALT + F11 para entrar no Editor do VB
  3. Clique em Inserir | Módulo na Barra de Menus
  4. Clique em Editar | Colar (CTRL + V)
  5. Feche o editor do VB
  6. Na planilha que contém seus dados sujos, pressione ALT + F8 para obter uma lista de macros disponíveis
  7. Selecione 'CleanMeImFilthy' e escolha Executar.
por 26.05.2011 / 23:49