1
resposta

VBA Funçao INDEX Match Erro 13

Olá pessoal, estou criando uma macro e com dúvida de pq a função index match não funciona. Alguém sabe me ajudar? O erro aparece na linha 6, bem na função Index Match (Erro em tempo de execução '13': Tipos incompatíveis). Meu código está assim:

Dim linha As Integer
Dim MLFB As String
linha = ActiveCell.Row
    Do While Cells(linha, 1) <> ""
        MLFB = Cells(linha, 1) & Cells(linha, 2)
        Cells(linha, 5).Value = Application.WorksheetFunction.INDEX(Workbooks("nome.xls").Sheets("Plan1").Range("F:F"), Application.WorksheetFunction.Match(MLFB, Workbooks("nome.xls").Sheets("Plan1").Range("A:A") & Workbooks("nome.xls").Sheets("Plan1").Range("B:B"), 0))       
            linha = linha + 1
    Loop

Se faço como fórmula direto na célula funciona sem problemas: =ÍNDICE([nome.xls]Plan1!$F:$F;CORRESP(A4&B4;[nome.xls]Plan1!$A:$A&[nome.xls]Plan1!$B:$B;0))

Obrigado!

1 resposta

Olá Felipe, tudo bem? Espero que sim!

Desculpe pela demora em retornar.

Você pode tentar utilizar uma outra forma de escrever a fórmula dentro da célula, utilizando a propriedade Range().Formula.

Dessa forma você pode definir a fórmula do Excel, entre aspas. Você deve utilizar a escrita da fórmula em inglês nesse caso para que funcione corretamente. Nesse caso, o ÍNDICE se tornaria INDEX e CORRESP se tornaria MATCH.

Abaixo segue um exemplo de como inserir uma fórmula na célula A1:

Worksheets("Sheet1").Range("A1").Formula = "=$A$4+$A$10"

Espero que tenha tirado sua dúvida.

Estou à disposição. Bons estudos!