Excluir múltiplas colunas com macro simples [fechado]

1

Eu preciso pegar dados de voo da TSPI e remover aproximadamente de 30 a 40 colunas, cada registro contém aproximadamente 3600 linhas por hora. Uma vez despojado, preciso reorganizar as colunas que sobraram. Eu gostaria de fazer isso da maneira mais fácil e mais rápida, se houver uma. Não sei como postar um exemplo dos dados do excel nesses fóruns.

Eu tentei este código, mas recebi o erro de execução 9

Sub sbVBS_To_Delete_Specific_Multiple_Columns () Folhas ("Folha1"). Intervalo ("A: B, H: L, P: Q, S: BJ"). EntireColumn.Delete End Sub

Nm eu descobri que a planilha foi nomeada 12-20-2016, então tive que mudar a planilha1 para 12-20-2016.

    
por Christopher Rogers 20.12.2016 / 23:55

1 resposta

2

Classificar

É possível classificar colunas, não apenas linhas, de dados. Supondo que você tenha algum tipo de cabeçalho na linha 1 que possa ser usado como uma chave de classificação, faça o seguinte:

1 Pressione Ctrl + End para ir para a última linha e coluna usadas

2 Pressione Shift + Ctrl + Home para selecionar tudo entre a primeira célula e a última célula usada

3 Ir para dados | Ordenar para abrir a interface de ordenação

4 Clique em Opções na parte superior da interface de classificação

5 Em Orientação, selecione Classificar da esquerda para a direita e clique em OK

Agora você terá a opção de qual linha classificar. Selecione uma linha que contenha algum valor que você queira classificar e clique em OK. Colunas em branco serão classificadas no final e podem ser ignoradas.

Excluir à medida que você for

Isso é mais para referência futura, mas talvez seja melhor selecionar colunas inteiras e excluí-las, em vez de excluir apenas seu conteúdo. Para fazer isso:

1 Clique na letra do cabeçalho da coluna no topo para selecionar a coluna inteira

2 Clique com o botão direito do mouse na letra do cabeçalho da coluna e escolha Excluir ou vá para a guia Início | Grupo de células | Excluir | Excluir colunas da planilha

Editado para adicionar:

Macro

Como foi apontado, você solicitou uma macro no título da pergunta. Embora os métodos que descrevi possam ser automatizados com uma macro gravada, aqui está uma rápida escrita que removerá qualquer coluna completamente vazia do intervalo usado.

Sub ClearEmpties()
    'Delete any entirely empty column in the workshee's used range

    Dim l As Long

    For l = ActiveSheet.UsedRange.Columns.Count To 1 Step -1
        If WorksheetFunction.CountA(Columns(l)) = 0 Then
            ActiveSheet.Columns(l).EntireColumn.Delete
        End If
    Next l

End Sub

Isso percorre todas as colunas no intervalo usado, verifica se há células não-brancas na coluna e, se não houver nenhuma, exclui a coluna inteira. Espero que ajude.

    
por 21.12.2016 / 15:36