我想写一行代码,将 vlookup 公式打印到列下的单元格中

我想写一行代码,将 vlookup 公式打印到列下的单元格中

这是我想要打印到列中每个单元格的公式:

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

我正在使用类似下面的语句:

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

答案1

您的代码有几个错误——首先,的值Last始终为 1,而不是最后一行的数字。

尝试这个:

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

主要变化:
1. 我使用UsedRange活动工作表的属性来获取行数。2
. 我放弃了 R1C1 公式样式,改用您想要的公式输出。相对单元格引用是通过将行号连接到公式字符串中来构建的。

相关内容