2016-07-15 6 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の値を参照する必要があります。

しかし、これらのシートから計算を行うために数式を実行しようとすると、週を一般化することはできません(週はRange("E1")のKPIファイルで行われます)。ファイル全体の場所です。これをどうすれば解決できますか?

私が持っている:

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&"は動作していないようです。 ファイル自体がバックグラウンドで開かれているので、 '' wb_MPO = Workbooks.open ''の式を使用しています。 – Thijsk

+0

エラーが発生しますか?または、何が働いていないようですか? – Kyle

+0

心配しないで、私は更新しました。 – Kyle

関連する問題