/ / Mover texto para coluna no Excel com script VB - excel, vbscript, copiar, planilha, colar

Mover texto para coluna no Excel com script VB - excel, vbscript, copiar, planilha, colar

Eu tenho uma grande planilha do Excel com registros. Cada registro tem 12 linhas. Eu preciso deles movidos para colunas. A cada doze linhas precisam ser copiadas na mesma coluna correspondente. Cada linha terá sua própria coluna. Preciso do script para abrir a pasta de trabalho, executar a tarefa e salvar a pasta de trabalho com o novo arranjo.

A planilha é muito grande, então eu preciso doscript para percorrer todo o caminho através da folha. No final do script, eu quero que as primeiras doze linhas sejam 1 registro distribuído por 12 colunas. Isto é o que tenho até agora:

Dim xlApp
Dim xlSheet1
Dim xlBook1

Set xlApp = CreateObject("Excel.Application")
xlApp.Workbooks.Open "C:usersam2878desktopExchange Audit Log.xls"

Set xlBook1 = xlApp.Workbooks("Exchange Audit Log.xls")
Set xlSheet1 + xlBook1.Worksheet("Exchange Audit Log")

xlApp.Application.Visible = True

xlSheet1.Range("A1:A12").Cut

xlSheet1.Range("A1:L1").Paste

Loop

xlBook1.SaveAs "C:usersam2878desktopExchange Audit Log.xls", xlNormal, "","",False,False
xlApp.Quit

Respostas:

0 para resposta № 1

A operação que você está procurando é chamada "transpor". No Excel, é implementado como um parâmetro do PasteSpecial método. Você não pode colar nas células que acabou de recortar; portanto, é necessário colá-lo em outro lugar:

Const xlAll  = -4104
Const xlNone = -4142

...

xlSheet1.Range("A1:A12").Cut
xlBook1.Sheets(2).PasteSpecial xlAll, xlNone, , True

Se você precisar modificar a planilha original, poderá mover os dados transpostos de volta para a planilha de origem:

xlBook1.Sheets(2).Range("A1:L1").Cut
xlSheet1.Activate
xlApp.ActiveSheet.Range("A1").Select
xlApp.ActiveSheet.Paste