Excel VBA通​​过使用genericsvariables“设置”引用其他工作簿,并在公式中保留该引用

这是我的问题。 我正在运行一个每周都必须更新的中央KPI文件。 它指的是具有特定名称+当前周的文件。例如,KPI指的是DT1P和MPO文件,均以当周结束。

因此,在2016 – 28周,中央KPI文件应查找MPO2016-28.xlsx和DT1P2016-28.xlsx中的值。

对于2016 – 2017年的一周,中央KPI文件应查找MPO2016-29.xlsx和DT1P2016-29.xlsx中的值。

但是,当我尝试运行公式来从这些工作表进行一些计算时,我不知道如何使通用一周Range("E1") KPI文件中的Range("E1")中的一周),而不仅仅是指向文件的整个位置。 我该如何解决这个问题?

我有:

 Set wb_MPO = Workbooks.Open("\\S007v\MPO" & Range("e1").Value & ".xlsx") wb_KPI.Activate Set wb_DT1P = Workbooks.Open("\\S007v\DT1P" & Range("e1").Value & ".xlsx") wb_KPI.Activate 

定义需要打开的文件。

然而,我的公式是这样的(还有更多的,但原则保持不变,所以我不会打扰你们)

  Range("E4").FormulaR1C1 = _ "=INDEX('[MPO2016-28.xlsx]CSR MPO'!C10,MATCH(RC[-4],'[MPO2016-28.xlsx]CSR MPO'!C1,0),0)" 

可能是这样的:

  Range("E4").FormulaR1C1 = _ "=INDEX('[wb_MPO]CSR MPO'!C10,MATCH(RC[-4],'[wb_MPO]CSR MPO'!C1,0),0)" 

还是我完全没有?

在此先感谢您的支持:)

你有正确的想法,但它会是:

 Range("E4").FormulaR1C1 = _ "=INDEX('[" & wb_MPO.Name & "]CSR MPO'!C10,MATCH(RC[-4],'[" & wb_MPO.Name & "]CSR MPO'!C1,0),0)" 

这只有在您尝试引用的工作簿已打开时才有效。 我觉得可能有更好的方法来提取这些信息,而不是打开工作簿并将公式写入单元格。