这是我的问题。我正在运行一个必须每周更新的中央KPI文件。它指的是具有特定名称的文件+他们所在的当前周。例如,KPI指的是DT1P和MPO文件,均以当前周结束。
因此,对于2016-28周,中央KPI文件应查找MPO2016-28.xlsx和DT1P2016-28.xlsx中的值。
对于2016-29周,中央KPI文件应查找MPO2016-29.xlsx和DT1P2016-29.xlsx中的值。
但是,当我尝试运行公式来从这些工作表中进行一些计算时,我不知道如何使一周通用(在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)"
还是我完全离开?
提前感谢您的支持:)
答案 0 :(得分:1)
你有正确的想法,但它会是:
Range("E4").FormulaR1C1 = _
"=INDEX('[" & wb_MPO.Name & "]CSR MPO'!C10,MATCH(RC[-4],'[" & wb_MPO.Name & "]CSR MPO'!C1,0),0)"
这仅在您尝试引用的工作簿打开时才有效。我觉得有可能更好的方法来提取这些信息,而不是打开工作簿并将公式写入单元格。