在VBA编辑器中没有出现连接的公式

对不起,如果这个问题,似乎无法find类似的问题。

我有一个很长的公式,我需要通过macros(见下文),使用FormulaR1C1放入一个单元格。 我知道文本string本身可以适合,因为我碰巧忽略了第一个=,并且整个stringinput到单元格。 但是,当我将它添加回来时,没有出现在所需的单元格中。

上下文:我试图从每个月份的工作表(从而有12个)的列中find这些数据,然后总结出来。 至于为什么我用vlookup列的列function,以便我可以稍后做一个填充。 iferror是要确保如果表不存在,公式将仍然工作。

任何人都可以帮助我? 谢谢…

Cells(3, 3).FormulaR1C1 = "=IfError(Vlookup(rc1, Sheets(1).Range(Cells(7, 1), Cells(8000, 60)), COLUMN(R[-2]C[32]), False), 0)" & _ "+ IfError(VLookup(rc1, Sheets(2).Range(Cells(7, 1), Cells(8000, 60)), COLUMN(R[-2]C[32]), False), 0)" & _ "+ IfError(VLookup(rc1, Sheets(3).Range(Cells(7, 1), Cells(8000, 60)), COLUMN(R[-2]C[32]), False), 0)" & _ "+ IfError(VLookup(rc1, Sheets(4).Range(Cells(7, 1), Cells(8000, 60)), COLUMN(R[-2]C[32]), False), 0)" & _ "+ IfError(VLookup(rc1, Sheets(5).Range(Cells(7, 1), Cells(8000, 60)), COLUMN(R[-2]C[32]), False), 0)" & _ "+ IfError(VLookup(rc1, Sheets(6).Range(Cells(7, 1), Cells(8000, 60)), COLUMN(R[-2]C[32]), False), 0)" & _ "+ IfError(VLookup(rc1, Sheets(7).Range(Cells(7, 1), Cells(8000, 60)), COLUMN(R[-2]C[32]), False), 0)" & _ "+ IfError(VLookup(rc1, Sheets(8).Range(Cells(7, 1), Cells(8000, 60)), COLUMN(R[-2]C[32]), False), 0)" & _ "+ IfError(VLookup(rc1, Sheets(9).Range(Cells(7, 1), Cells(8000, 60)), COLUMN(R[-2]C[32]), False), 0)" & _ "+ IfError(VLookup(rc1, Sheets(10).Range(Cells(7, 1), Cells(8000, 60)), COLUMN(R[-2]C[32]), False), 0)" & _ "+ IfError(VLookup(rc1, Sheets(11).Range(Cells(7, 1), Cells(8000, 60)), COLUMN(R[-2]C[32]), False), 0)" & _ "+ IfError(VLookup(rc1, Sheets(12).Range(Cells(7, 1), Cells(8000, 60)), COLUMN(R[-2]C[32]), False), 0)" 

你正在混合VBA代码与公式。 您将无法在公式中使用Sheets(2).range(cells(7,1)) 。 你可能需要VLookup(rc1," & Sheets(2).Range(Cells(7, 1) " &, REST OF CODE部分引用出来,所以例如你需要匹配你的代码,像VLookup(rc1," & Sheets(2).Range(Cells(7, 1) " &, REST OF CODE

或者使用实际的工作表参考。 所以VLookup(rc1, Sheet2!A7, REST OF CODE当VBA引用表单或VBA代码引用时VLookup(rc1, Sheet2!A7, REST OF CODE它将是VLookup(rc1, Sheet2!A7, REST OF CODE

你需要确保你所有的代码都是这样做的。 因为你不能像你试图做的那样,使用真实工作表公式中的单元格或工作表的vba引用。