Gostaria de fazer uma linha de código que imprime uma fórmula de vlookup para as células que vão para uma coluna

0

Esta é a fórmula que gostaria de imprimir em cada célula que desce a coluna:

=VLOOKUP(CONCATENATE(E2,C2), WORKABILITY_INDEX!$A$1:$B$82, 2, FALSE)

Estou usando uma declaração como a abaixo:

Last = Cells(Rows.Count, "A").End(xlUp).Row
    For i = Last To 2 Step -1
        If (Cells(i, "A").Value) <> "" Then
                 Cells(i, "L").Formula = "=VLookup(Concatenate(RC[-8],RC[-10]), ""WORKABILITY_INDEX!$A$1:$B$82"", 2, False)"
        End If
    Next i
    
por Dave 06.01.2014 / 00:51

1 resposta

0

Ocorreram algumas coisas erradas no seu código - primeiro, o valor de Last foi sempre 1, não o número da última linha.

Tente isto:

Sub insertFormulas()
Last = ActiveSheet.UsedRange.Rows.Count
    For i = Last To 2 Step -1
        If (Cells(i, "A").Value) <> "" Then
            Cells(i, "L").Formula = "=VLOOKUP(CONCATENATE(E" & i & ",C" & i & "), WORKABILITY_INDEX!$A$1:$B$82, 2, FALSE)"
        End If
    Next i
End Sub

Principais alterações:
1. Usei a propriedade UsedRange da planilha ativa para obter o número de linhas.
2. Eu desmontei o estilo da fórmula R1C1 e usei a saída da fórmula desejada. As referências de células relativas são construídas pela concatenação do número da linha na string da fórmula.

    
por 06.01.2014 / 17:39