0

VBA で変数値を代入するのに苦労しています。次のように myVar を ActiveCell.Value に等しく設定する方法を理解しています。

ActiveCell.FormulaR1C1 = "=SUM(RC[1]:RC[7])"
myVar = ActiveCell.Value
MsgBox (myVar)

myVar を式に等しく設定し、ActiveCell.Value 行をスキップすることは可能ですか? 私はこれを試しましたが、うまくいきません。

myVar = "=SUM(RC[1]:RC[7])"

ご協力いただきありがとうございます。

4

3 に答える 3

2

私はあなたの目標のより広い範囲が何であるかわからないので、私は役に立つかもしれない考えを提示します。FormulaR1C1ただし、相対参照から技術の相対参照に切り替わりますRange.Offset()

myVar = WorksheetFunction.Sum(Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 7)))
MsgBox myVar
于 2013-03-18T19:45:46.447 に答える
0

式をアクティブ セルに対して相対的にする必要がない場合は、短い式を使用し[..]てステートメントを評価することもできます。

MsgBox [SUM(B1:B7)]
于 2013-03-18T21:44:48.790 に答える
0

はい、できます。最初に変数の設定から始めてmyVar、それを範囲 (ActiveCell またはその他の Range オブジェクト) に適用します。

Dim myVar as String
Dim r as Excel.Range

Set r = ActiveCell

myVar = "=SUM(RC[1]:RC[7])"
r.FormulaR1C1 = myVar
于 2013-03-18T19:26:08.750 に答える