2016-11-19 6 views
0

誰かがこれの実装を手伝ってくれますか?VBAはrange.formulaで相互参照します

Range("B3").Formula = "=SUMIF(Active.Select!$A:$A,Results.select!$A3,Active.select!B:B)" 

私がアクティブに定義されているとワークシートと私の目標として結果がマクロCNAは、Sheet1のリク静的refereceのいずれかの種類をせずに、ブックの任意のシート上で実行されるようにので、それらへの動的参照を持っていることでした!

私は彼が開いた...窓

を通じてアクティブおよび結果を提供するために、私に尋ねる書いたものを実行しようと、私はそれがnoobish質問かもしれません知っているが、私はちょうど

答えて

0

を始めるのですActiveResultsは両方Worksheetオブジェクトであると仮定すると、あなたがActiveSheetのセルB3に行くための式を作成したい場合は、この方法を試してください。

Range("B3").Formula = "=SUMIF('" & Active.Name & "'!$A:$A,'" & Results.Name & "'!$A3,'" & Active.Name & "'!B:B)" 

あなただけの値を取得し、VBA内の何かのためにそれを使用したい場合は

、これを試してみてください。

Dim sumIfResult As Double 
sumIfResult = Application.WorksheetFunction.SumIf(Active.Range("$A:$A"),Results.Range("$A3"),Active.Range("B:B")) 
+0

ありがとう、最初のものは私が探していたものであり、それは魅力のように動作します:-)また、2番目の部分は私の学習に非常に役立ちます – dralexhunter

1

あなたは、次の式は、それがオンになっているワークシートを参照するシート名を削除した場合。

Range("D2").Formula = "=SUMIF($A:$A,$E$1,$B:$B)" 

enter image description here

ワークシートは、式の値を返す方法を評価している

enter image description here

注:それは循環参照ですので私はRange("B3").Formula = "=SUMIF($A:$A,$A3,B:B)"を使用していません。

関連する問題