我希望在现有选择旁边的列中简单地插入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))'之类的东西,但是我似乎无法在上面的代码中使用它。
答案 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))"