- 15 Jun 2020 às 10:48
#55984
Bom dia,
Eu encontrei um procv na internet que me tras os itens em ordem, hoje o procv normal nos tras apenas a primeira ocorrencia com esse outro procv que eu achei eu consigo pegar a primeira, segunda etc... só que esse código esta travando de mais, ele funciona bem até, mas quando tem muitos dados ele trava tudo.. alguem consegue otimizar esse código? ou me dizer o que pode ser feito para melhorar o desempenho dele?
Eu encontrei um procv na internet que me tras os itens em ordem, hoje o procv normal nos tras apenas a primeira ocorrencia com esse outro procv que eu achei eu consigo pegar a primeira, segunda etc... só que esse código esta travando de mais, ele funciona bem até, mas quando tem muitos dados ele trava tudo.. alguem consegue otimizar esse código? ou me dizer o que pode ser feito para melhorar o desempenho dele?
Código: Selecionar todos
Public Function PROCVN(Val1 As Variant, _
Table As Range, _
ResultCol As Integer, _
Optional Val1Occrnce As Integer = 1)
Dim i As Integer
Dim iCount As Integer
Dim rCol As Range
For i = 1 To Table.Rows.Count
If Not (Application.WorksheetFunction.IsError(Table.Cells(i, 1))) Then
If UCase(Table.Cells(i, 1)) = UCase(Val1) Then
iCount = iCount + 1
End If
If iCount = Val1Occrnce Then
PROCVN = Table.Cells(i, ResultCol)
Exit For
Else
PROCVN = CVErr(xlErrNA)
End If
End If
Next i
End Function