Notifications
Clear all

Matriz em VBA

2 Posts
2 Usuários
0 Reactions
831 Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Ola a todos......

Vi uns videos do Fernando Fernandes e do Trovato e verifiquei que minha atual macro é muito, mais muito lenta quando se compara com o uso de matrizes.

Como estou tentando assimilar o uso de matrizes, estou fazendo alguns testes. A principio estou colocando matrizes individuais para cada coluna, acredito que tenha uma forma melhor, mas vamos em doses homeopáticas !!! rsssss

Minha prioridade agora é eliminar o SumIfs e trabalhar só com matriz. Mas como fazer é o problema !!!

Segue o código e anexo o arquivo.

Desde já, agradeço por qualquer ajuda !!!

O código é este:

Sub teste_Array2()
Dim WSF            As WorksheetFunction
Dim vEndLin        As Integer
Dim vSldTt         As Long
Dim vArrayA()      As Variant
Dim vArrayB()      As Variant
Dim vArrayC()      As Variant
Dim vArrayD()      As Variant

Set WSF = Application.WorksheetFunction

T1 = Timer()
vEndLin = Plan1.Cells.SpecialCells(xlLastCell).Row
Ln = 1

ReDim vArrayA(1 To vEndLin)
ReDim vArrayB(1 To vEndLin)
ReDim vArrayC(1 To vEndLin)
ReDim vArrayD(1 To vEndLin)

vArrayA = Columns(1).Value2
vArrayB = Columns(2).Value2
vArrayC = Columns(3).Value2

    For Ln = 1 To vEndLin Step 1
        LIN = Ln + 1
        
        vSldTt = WSF.SumIfs(Range("C2:C" & vEndLin), _
                            Range("A2:A" & vEndLin), Cells(LIN, 1).Value2, _
                            Range("B2:B" & vEndLin), Cells(LIN, 2).Value2)
        vArrayD(Ln) = vSldTt
        
    Next Ln
    
    Plan1.Range("D2:D" & vEndLin).Value2 = WSF.Transpose(vArrayD)

T2 = Timer()
T3 = T2 - T1
Debug.Print T3
End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 31/08/2018 2:16 pm
(@mprudencio)
Posts: 2749
Famed Member
 

O ideal seria uma parte da planilha junto com o codigo.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 31/08/2018 2:47 pm