我正在努力在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])"
感谢您的帮助。
答案 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)]