2016-07-15 48 views
0

這是我的問題。我正在運行一個必須每週更新的中央KPI文件。它指的是具有特定名稱+當前周的文件。例如,KPI指的是DT1P和MPO文件,均以當週結束。Excel VBA引用其他工作簿通過「設置」與通用變量,在公式中保留該參考

因此,對於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)" 

還是我完全沒有?

預先感謝您的支持:)

回答

1

你有正確的想法,但它是:

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

,如果你想引用工作簿是打開的,雖然這隻會工作。我覺得有可能比打開工作簿並將公式寫入單元格更好的方法來提取此信息。

+0

嗨凱爾,謝謝你的回答。不幸的是,代碼'「&wb_MPO.name&」'似乎不起作用。 這些文件本身已經在後臺打開,這就是爲什麼我使用「set wb_MPO = Workbooks.open」公式。 – Thijsk

+0

您是否收到錯誤?或者什麼似乎沒有工作? – Kyle

+0

沒關係,我更新了它現在應該可以工作。 – Kyle