VBA脚本可将INDEX / MATCH公式与动态引用/数组一起插入

时间:2019-06-12 12:47:07

标签: vba excel-2010

我希望在现有选择旁边的列中简单地插入INDEX / MATCH公式(这将是较大Sub的一部分)。公式中的参考/查找数组必须是动态的。

到目前为止,我已经成功地成功插入了公式。但是,由于我知道当前的范围(可能会改变),因此我手动输入了引用/查找数组:

Selection.Offset(0, 1) = "=INDEX($J$3:$J$31,MATCH(INDIRECT(""RC[-2]"",0),$H$3:$H$31,0))"

如何修改$J$3:$J$31$H$3:$H$31以动态更新?我已经成功地使用了'Range(“ J3”,Range(“ J3”)。End(xlDown))'之类的东西,但是我似乎无法在上面的代码中使用它。

1 个答案:

答案 0 :(得分:0)

您可以将变量集成到公式中,这会变得有些棘手,并且我想有更好的方法来完成此操作,但这是我在VBA公式中需要动态范围时使用的方法。我将在下面提供一个对您有帮助的示例:

我假设J3和H3将保持不变,但是范围的尽头是您希望更改的范围。如果不是这种情况,请告诉我。

您实际上是将范围引用中的“ 31”替换为“&[variable]&”(包括引号)。

编辑:我以Sheet1为例来说明行数;因此只要将其更新为适用的表格和范围即可。

    Dim rCount As Long
    rCount = Sheet1.Range("A" & Rows.Count).End(xlUp).Row

    Selection.Offset(0, 1) = "=INDEX($J$3:$J$" & rCount & ",MATCH(INDIRECT(""RC[-2]"",0),$H$3:$H$" & rCount & ",0))"