請教excel vb marcos高手一個問題

在一個excel文件裏有許多worksheet,sheetname, a(1), b(1),c(1) 到d(1)。
我想在一個worksheet (sheetname) 裏麵的range從o74到o78定義一個公式function.
但是function裏計算的值在另外的worksheets (graphname)裏麵。graphname是從a(1), b(1),c(1) 到d(1)。再另外的loop裏定義的,如下
graphname = ActiveSheet.Name 這個沒有error

我用For Each Sheet In Sheets,定義graphname 的值從a(1)到d(1)。沒有問題。

但是問題error出在定義這個function上,如下,

Sub correction()

Sheets(sheetname).Select
Range("o74").Select

ActiveCell.FormulaR1C1 = _
"=IF(R[-5]C>0,SUMIF(' 'graphname'!R[-64]C[-1]:R[9925]C[-1],""
它無論如何不能把function 裏麵的graphname轉成他對應的值,如a(1),這樣我就沒有辦法在o74得到正確的結果,

o74的值是=IF(COUNTIF(graphname!O11:O10000,"0,(SUMIF(graphname!O11:O10000,"
而我想要得是=IF(COUNTIF('a(1)'!O11:O10000,"0,(SUMIF('a(1)'!O11:O10000,"
請問我應該如何才可以把這個問題解決,是要從新定義graphname還是function中需要特殊的格式才能計算graphname對應的值,而不是graphname這個名詞。

我對vb不熟,希望各位高手講的具體些,謝謝。

請您先登陸,再發跟帖!