【问题标题】:Set formula in multiple cells (dynamic range)在多个单元格中设置公式(动态范围)
【发布时间】:2017-12-12 17:21:37
【问题描述】:

我试图在动态范围内输入一个公式。 这是我到目前为止得到的。我想做的是,例如,如果在nr(1) 中说B1,我希望公式从B3 开始并转到F3。现在它一直到T3

Sub punt()

Dim nr(2)

For i = 34 To 58
    nr(1) = ThisWorkbook.Sheets("BerekeningenEind").Range("AY" & i).Value
    If nr(1) = 0 Then
        'do nothing
    Else
        Range(nr(1)).Select
        ActiveCell.Offset(RowOffset:=2, Columnoffset:=0).Activate
        For k = 1 To 5
            ActiveCell.FormulaR1C1 = "=RC[-5]/10*R[-" & k & "]C"
        Next k
    End If
Next i

End Sub

我认为这与nr(1) 有关,但我真的不知道要更改什么。谢谢!

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    为了在正确的单元格中获取Formula,请使用以下代码:

    If nr(1) = 0 Then
        'do nothing
    Else
        For k = 1 To 5
            Range(nr(1)).Offset(2, k - 1).FormulaR1C1 = "=RC[-5]/10*R[-" & k & "]C"
        Next k
    End If
    

    注意:我不确定您的Formula 应该做什么,但我认为它也需要修改。

    【讨论】:

    • 公式是 B3/10*B2,下一个是 C3/10*C2,我确实在单元格中得到了正确的公式
    • @Milena 你用我的代码测试了吗?当我运行我的代码时(上图),nr(1) = "B1",然后Range(nr(1)).Offset(2, k - 1)k = 5 等于Range("B1").Offset(2, 4),这意味着Range("F3")
    • 我做到了,但我认为问题出在我定义“nr(1)”的那一行。因为如果我将“i”更改为“34 到 40”,它会起作用。
    • @Milena 您是否需要循环遍历 19 行,并根据列 "AY" 中该行的每个值来运行另一个循环,在其中根据单元格的值放置公式 @987654330 @ ?
    • 哦,哇,你是对的,这根本不是必需品。对不起,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    • 2017-04-07
    • 2014-12-21
    • 2020-10-19
    • 2018-07-09
    • 1970-01-01
    • 2023-02-01
    相关资源
    最近更新 更多