Eu uso essa macro para transpor linhas em colunas, mas vejo que com a adição de mais linhas ela fica cada vez mais lenta. Alguém teria uma solução para isso? De modo que a macro pegasse somente as informações das linhas mais atuais?
<>
Sub TransporDados1()
'Declarações
Dim Arr() As Variant
Dim LastRow As Variant, j As Long, linha As Long, coluna As Long
Dim ws1 As Worksheet, ws2 As Worksheet
Application.ScreenUpdating = False
'Declara a planilha com os dados
Set ws1 = ThisWorkbook.Sheets("BD")
Set ws2 = ThisWorkbook.Sheets("Análise de Dados")
'Em ws1:
With ws1
'ÚltimaLinha
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
'Array
Arr() = .Range("B2:B" & LastRow).Value2
linha = 2
coluna = 1
'Loop em cada elemento da Array
For j = LBound(Arr) To UBound(Arr)
ws2.Cells(linha, coluna) = Arr(j, 1)
coluna = coluna + 1
'Quando preencher 9 células, passa para próxima linha e zera contador de coluna
If coluna = 11 Then
linha = linha + 1
coluna = 1
End If
Pergunta
luiza lopes
Olá,
Eu uso essa macro para transpor linhas em colunas, mas vejo que com a adição de mais linhas ela fica cada vez mais lenta. Alguém teria uma solução para isso? De modo que a macro pegasse somente as informações das linhas mais atuais?
<>
Sub TransporDados1()
'Declarações
Dim Arr() As Variant
Dim LastRow As Variant, j As Long, linha As Long, coluna As Long
Dim ws1 As Worksheet, ws2 As Worksheet
Application.ScreenUpdating = False
'Declara a planilha com os dados
Set ws1 = ThisWorkbook.Sheets("BD")
Set ws2 = ThisWorkbook.Sheets("Análise de Dados")
'Em ws1:
With ws1
'ÚltimaLinha
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
'Array
Arr() = .Range("B2:B" & LastRow).Value2
linha = 2
coluna = 1
'Loop em cada elemento da Array
For j = LBound(Arr) To UBound(Arr)
ws2.Cells(linha, coluna) = Arr(j, 1)
coluna = coluna + 1
'Quando preencher 9 células, passa para próxima linha e zera contador de coluna
If coluna = 11 Then
linha = linha + 1
coluna = 1
End If
Next j
End With
Application.ScreenUpdating = True
'Call timer2
End Sub
Link para o comentário
Compartilhar em outros sites
40 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.