Excel VBA变量值等于公式

时间:2013-03-18 19:17:40

标签: excel vba variables formula

我正在努力在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])"

感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

我不知道你的目标范围更广,因此我提出了可能有用的想法。但是,它会从FormulaR1C1的相对引用切换为Range.Offset()技术的相对引用。

myVar = WorksheetFunction.Sum(Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 7)))
MsgBox myVar

答案 1 :(得分: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

答案 2 :(得分:0)

如果您不需要公式相对于活动单元格,您还可以使用短[..]来评估语句,例如:

MsgBox [SUM(B1:B7)]