Cenário
Suponha que você tenha uma pasta de trabalho do Excel. Possui 3 folhas. Uma folha contém 5 colunas. Cada coluna possui dados de uma cidade diferente. Cada folha contém 5 colunas semelhantes com dados diferentes das mesmas cidades.
Desafio:
Precisamos criar um arquivo que contém planilhas diferentes para cada coluna única. Cada folha deve conter os dados de suas respectivas colunas. Ao final, teremos 5 folhas com 3 colunas cada. De certa forma, está transpondo colunas em folhas.
Lógica:
Primeiro, precisamos criar uma pasta de trabalho que contém planilhas diferentes para cada coluna. Podemos fazer isso observando os cabeçalhos da primeira folha de nosso arquivo original.
Em seguida, precisamos percorrer cada folha da planilha original para copiar cada coluna para as planilhas correspondentes da nova pasta de trabalho.
Código VBA para transpor colunas em folhas.
Vamos ver o código VBA para transpor as folhas primeiro. Eu explico isso abaixo.
Sub TransposeColsToSheets () 'varibles Dim wb As Workbook Dim twb As Workbook Dim lstRw As Integer Dim lstCl As Integer Dim cols As Range With Application .DisplayAlerts = False .ScreenUpdating = False End With' criando novo arquivo Definir wb = Workbooks.Add 'salvando o arquivo. Substitua o caminho pelo seu destino. wb.SaveAs "C: \ Users \ Manish Singh \ Desktop \ Excel Tip \ result.xlsx" Definir twb = ThisWorkbook twb.Sheets (1) .Activate lstCl = Cells (1, Columns.Count) .End (xlToLeft) .Column 'identificando cabeçalhos para nomes de cidades Set cols = Range (Cells (1, 1), Cells (1, lstCl))' loop para criar planilhas Para x = 1 Para cols.Count wb.Sheets.Add.Name = "page" & x Next 'loop para transpor colunas para planilhas Para Cada sh In twb. Planilhas Para x = 1 Para cols.Count sh.Activate lstRw = Cells (Rows.Count, 1) .End (xlUp) .Row Range (Cells (1, x), Cells (lstRw, x)). Copiar wb.Sheets ("page" & x) .Activate lstCl = Cells (1, Columns.Count) .End (xlToLeft) .Column + 1 Range (Cells (1, lstCl ), Células (1, lstCl)). PasteSpecial xlPasteAll Next x Next sh 'salvando e fechando a pasta de trabalho de resultados wb.Save wb.Close With Application .DisplayAlerts = True .ScreenUpdating = True End With End Sub
Você pode baixar o arquivo abaixo para usá-lo imediatamente ou copiar o código para personalizá-lo conforme sua necessidade.
Depois de executar o código, ele criará imediatamente um arquivo excel que terá 5 planilhas, sendo que cada planilha contendo 3 colunas de dados da mesma cidade.
Transpor coluna para folhas
Como funciona?
No código de exemplo acima, assumimos que o arquivo começa na primeira célula de cada planilha e cada planilha contém o mesmo número de colunas.
Nas primeiras linhas do código, declaramos as variáveis de que precisaremos no procedimento. Salvamos os cabeçalhos das colunas em uma variável chamada cols.Também criamos um arquivo .xlsx, denominado result.xlsx.
Em seguida, usamos um loop para criar o mesmo número de folhas em result.xlsx como no cabeçalho emcols.
'loop para criar folhas Para x = 1 Para cols.Count wb.Sheets.Add.Name = "página" & x Próximo
Em seguida, usamos um loop aninhado. O primeiro loop é iterar planilhas no arquivo original. Próximo loop para copiar cada coluna e colá-la em cada planilha no arquivo results.xlsx.
No final, estamos salvando a pasta de trabalho result.xlsx e fechando-a. E está feito.
Então, sim pessoal, é assim que você pode copiar cada coluna para uma nova planilha no Excel usando o VBA. Isso foi perguntado por nosso usuárioMahmood na seção de comentários. Achei que merecia um artigo para estar à disposição de todos nós. Aqui está. Espero que tenha sido explicativo o suficiente. Se você ainda tiver alguma dúvida ou qualquer outra dúvida, pergunte na seção de comentários abaixo.
Divida a planilha do Excel em vários arquivos com base na coluna usando o VBA | Este código VBA divide a planilha do Excel com base em valores exclusivos em uma coluna especificada. Baixe o arquivo de trabalho.
Desativar mensagens de aviso usando VBA no Microsoft Excel 2016 | Para desligar as mensagens de aviso que interrompem o código VBA em execução, usamos a classe Application.
Adicionar e salvar nova pasta de trabalho usando VBA no Microsoft Excel 2016 | Para adicionar e salvar pastas de trabalho usando o VBA, usamos a classe Workbooks. Workbooks.Add adiciona uma nova pasta de trabalho facilmente, no entanto …
Artigos populares:
50 atalhos do Excel para aumentar sua produtividade | Torne sua tarefa mais rápida. Esses 50 atalhos farão você trabalhar ainda mais rápido no Excel.
A função VLOOKUP no Excel | Esta é uma das funções mais usadas e populares do Excel, que é usada para pesquisar valores em diferentes intervalos e planilhas.
COUNTIF no Excel 2016 | Conte valores com condições usando esta função incrível. Você não precisa filtrar seus dados para contar um valor específico. A função Countif é essencial para preparar seu painel.
Como usar a função SUMIF no Excel. Esta é outra função essencial do painel. Isso ajuda você a somar valores em condições específicas.