VBA:如何将公式应用于与非空单元格相邻的单元格?

VBA:如何将公式应用于与非空单元格相邻的单元格?,vba,excel,Vba,Excel,FORMULA=INDEX(Sheet2!$A$2:$A$1000,匹配(A2,Sheet2!$G$2:$G$1000,0)) A2是活动工作表中的一个单元格,不确定我是否需要具体地说Sheet1!A2。然后,输出将位于B2上 ActiveCell.FormulaR1C1 = _ "=INDEX(Sheet2!R3C1:R1000C1,MATCH(Sheet1!RC[-4],Sheet2!R3C7:R1000C7,0))" 是我从记录宏中得到的,但不确定RC是什么

FORMULA=INDEX(Sheet2!$A$2:$A$1000,匹配(A2,Sheet2!$G$2:$G$1000,0))

A2是活动工作表中的一个单元格,不确定我是否需要具体地说Sheet1!A2。然后,输出将位于B2上

ActiveCell.FormulaR1C1 = _
    "=INDEX(Sheet2!R3C1:R1000C1,MATCH(Sheet1!RC[-4],Sheet2!R3C7:R1000C7,0))"
是我从记录宏中得到的,但不确定RC是什么

列公式列

A
B
C
D
E
F
G
H


我想我需要一个for循环来计算所有与左边有值的单元格相邻的单元格。我不知道如何输入公式,在另一张表中引用单元格,并向下移动列。

找到了答案。这最终对我有用

'`Sub ApplyFormula()
'
' ApplyFormula Macro
'
Dim i&

For i = 2 To ActiveSheet.UsedRange.Rows.Count
    If Cells(i, 1).Value <> "" Then Cells(i, 6).FormulaR1C1 = "=INDEX(Sheet2!R2C1:R1000C1,MATCH(Sheet1!RC[-4],Sheet2!R2C7:R1000C7,0))"

Next
End Sub
“`Sub ApplyFormula()
'
'ApplyFormula宏
'
昏暗的我&
对于ActiveSheet.UsedRange.Rows.Count的i=2
如果单元格(i,1).Value“”,则单元格(i,6).FormulaR1C1=“=索引(Sheet2!R2C1:R1000C1,匹配(Sheet1!RC[-4],Sheet2!R2C7:R1000C7,0))”
下一个
端接头

我认为
索引(Sheet1!$A$2:$A$1000..
应该是
索引(Sheet2!$A$2:$A$1000…
你是对的。如果你把它放在B列中,那就是打字错误:然后
C[-4]
将通过错误,因为左侧没有第4列。只有1列。因此最大负数可以是-1。明白了。是的,我复制粘贴并替换了实际数据,因此出现了错误的内容。在我的实际数据中,我有4列数据。公式部分似乎直接来自宏记录,但我不知道如何应用它因此,它会运行循环,直到最后一行有数据。类似于双击公式单元格的右下角。每次我提取数据时,可能会有更多或更少的行。因此,有时它需要计算到K,或者如果有更少的行,则为F。那么,您要查找的确切的最终公式是什么,不是R1C1,而是中的实际公式最后的单元格?它将进入哪一列?如果我们确切知道您想要什么,这将更容易提供帮助。这很好。仅供参考,在使用索引/匹配时,您可以使用完整的列引用而不会造成损害;
“=INDEX(Sheet2!C[1],MATCH(Sheet1!RC[-4],Sheet2!C[7],0))”