创建一个使用带变量的函数的宏

时间:2013-04-03 20:40:31

标签: excel function excel-vba sum vba

继承我的代码:

Dim N As Single
N = ActiveCell.Offset(0, 0).Value
E = 1 - N

ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=-SUM(R[E]C:R[-1]C)"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=-SUM(R[E]C:R[-1]C)"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=-SUM(R[E]C:R[-1]C)"
ActiveCell.Offset(1, 0).Range("A1").Select

我希望宏用户选择具有值的单元格(示例5),因为它将是第5行值的插槽。我希望程序找到它之前所有值的负和(1,2,3和4)。

2 个答案:

答案 0 :(得分:0)

虽然我不赞成.Select。请参阅this

但这是你在尝试的吗? E是一个变量。在双引号内,它表现为字符串:)

Sub Sample()
    Dim N As Single
    N = ActiveCell.Offset(0, 0).Value
    E = 1 - N

    ActiveCell.Offset(0, 1).Range("A1").Select
    ActiveCell.FormulaR1C1 = "=-SUM(R[" & E & "]C:R[-1]C)"
    ActiveCell.Offset(0, 1).Range("A1").Select
    ActiveCell.FormulaR1C1 = "=-SUM(R[" & E & "]C:R[-1]C)"
    ActiveCell.Offset(0, 1).Range("A1").Select
    ActiveCell.FormulaR1C1 = "=-SUM(R[" & E & "]C:R[-1]C)"
    ActiveCell.Offset(1, 0).Range("A1").Select
End Sub

答案 1 :(得分:0)

我可以建议以下作为避免使用SELECT的替代方法吗?

Sub SampleWithoutSelect()
Dim N As Single
N = ActiveCell.Offset(0, 0).Value
E = 1 - N

for iIndx=0 to -3 step -1
    range(activecell.offset(iindx,0).formular1c1="=-SUM(R[" & E & "]C:R[-1]C)"
next

End Sub

是你想要的 - 或者我错过了什么?