Excel VBA将替代公式插入同一列

时间:2018-12-14 17:43:22

标签: excel vba excel-vba

是否可以使用vba在相同列中插入2个不同的公式?我希望这些公式可以交替使用。我正在尝试做Sumif运算,但是总和范围在每第二行之后不断变化,因此我需要能够插入2个不同的公式。

因此,为了进一步解释这一点-在单元格A1中,我想使用一个sumif,并且求和范围是K列,但是A2必须对L列求和,然后A3必须回到K列,依此类推上。

我尝试使用vlookup使用,但没有唯一标识符。

我正在努力实现的目标吗?

4 个答案:

答案 0 :(得分:2)

诀窍是在循环中使用Step 2

您当然需要调整循环范围,因为这只是一个通用示例。如果将其放到工作表代码空间中并运行,您会注意到在求和Column KColumn L

之间的所有其他行切换
Sub Alternate()

Dim i As Long

For i = 1 To 20 Step 2
    Range("A" & i).Formula = "=Sum(K:K)"
    Range("A" & i + 1).Formula = "=Sum(L:L)"
Next i


End Sub

另外,与上面的示例不同,请适当地限定对象!

enter image description here

答案 1 :(得分:2)

您还可以使用ROW函数在Excel中执行此操作:

=IF(MOD(ROW(),2)<>0,SUM(K:K),SUM(L:L))

答案 2 :(得分:1)

无循环:

Sub FFF()
    [A1].Formula = "=SUM(K:K)"
    [A2].Formula = "=SUM(L:L)"
    [A1:A2].AutoFill [A1:A20]
End Sub

答案 3 :(得分:0)

对于这样的需求,WorksheetFunction属性也非常有用。所有计算都在VBA中进行,而不是在工作表本身上进行。

Sub Alternate()
    Dim i As Long
    For i = 1 To 20 Step 2
        Range("A" & i) = WorksheetFunction.SumIf(Range("J:J"), criteria, Range("K:K"))
        Range("A" & i + 1) = WorksheetFunction.SumIf(Range("J:J"), criteria, Range("L:L"))
    Next i
End Sub

......其中的“条件”类似于“> 10”或“ whateverString”