2013-05-07 49 views
0

我試圖在VBA中創建一個公式來匹配一些行。目前我有類似的東西:公式VBA中的Excel表Codenames

ActiveCell.FormulaR1C1 = _ 
"=INDEX('Report 2'!C[4],MATCH(Report!RC[2],'Report 2'!C[8],0))" 

其中報表的表單代碼名稱爲Sheet1,報表2的表單代碼名稱爲Sheet2。所以我想將上面的代碼改成類似的東西:

ActiveCell.FormulaR1C1 = _ 
"=INDEX(Sheet2!C[4],MATCH(Sheet1!RC[2],Sheet2!C[8],0))" 

這可能嗎?它試圖尋找,但沒有運氣。

謝謝!

+1

你是什麼意思的 「代號」?這是一個變量持有你的工作表的真實姓名? – Barranka 2013-05-07 20:45:53

+0

在Excel VBA代碼內部可用的表單代碼名稱。 [看這個](http://www.excel-it.com/SheetName.htm) – tijuthomas 2013-05-07 21:59:19

+0

然後它只是串聯建立公式的字符串的問題,正如約翰布斯托斯在他的回答中提出的 – Barranka 2013-05-07 22:01:29

回答

1

...這應做到:

ActiveCell.FormulaR1C1 = "=INDEX('" & Sheet2.Name & "'!C[4],MATCH(" & Sheet1.Name & "!RC[2],'" & Sheet2.Name & "'!C[8],0))" 
+0

偉大的作品。謝謝! – tijuthomas 2013-05-07 22:13:38