Nunca crie um tópico sem anexar arquivo de exemplo.
Este vídeo explica o uso das funções INDEX, MATCH:
https://youtu.be/TsHHG4zz8b
Este vídeo explica como tratar erro com a função MATCH:
https://youtu.be/qSEjhOKIq4c
Sub IndiceCorresp()
Planilha2.Select
Dim Linha As Double
Dim QtdLinha As Double
Dim Estoque As Double
Linha = 1
With ActiveSheet
Do
Linha = Linha + 1
QtdLinha = WorksheetFunction.CountA(ActiveSheet.Range("A:A"))
If Not IsError(Application.Match(.Cells(Linha, 1), Plan3.Columns(1), 0)) Then
Estoque = WorksheetFunction.Index(Plan3.Range("a:z"), WorksheetFunction.Match(.Cells(Linha, 1), Plan3.Columns(1), 0), 2)
Else
Estoque = 0
End If
.Cells(Linha, 2).Value = Estoque
Loop Until QtdLinha = Linha
End With
End Sub
Quando se usa ActiveSheet, é necessário ter certeza de que a planilha desejada está ativa no momento da execução do código. Por isso, usei Planilha2.Select logo no início do código.
O exemplo abaixo já está funcionando, basta você alterar as colunas de acordo com seu arquivo:
Sub IndiceCorresp()
Planilha2.Select
Dim Linha As Double
Dim QtdLinha As Double
Dim Estoque As Double
Linha = 1
With ActiveSheet
Do
Linha = Linha + 1
QtdLinha = WorksheetFunction.CountA(ActiveSheet.Range("A:A"))
Estoque = WorksheetFunction.Index(Plan3.Range("a:z"), WorksheetFunction.Match(.Cells(Linha, 1), Plan3.Columns(1), 0), 2)
.Cells(Linha, 2).Value = Estoque
Loop Until QtdLinha = Linha
End With
End Sub
Este post foi modificado 4 anos atrás 9 vezes por
Anderson Em 90% dos casos em que não se anexa o arquivo, ocorrem mal-entendidos, gerando perda de tempo de ambos os lados.
Postado : 02/11/2020 9:48 am