【问题标题】:Unable to AutoSum with LastCol in formula无法在公式中使用 LastCol 自动求和
【发布时间】:2016-03-14 14:48:33
【问题描述】:

我在将 VBA 写入 Autosum 时遇到问题,其中列可能会不时增加或减少。以下面为例。我已将我的 LastCol 设置为查找最后一列,然后我想从该行的 B 列自动求和到最后一列以获得我的“总计”。我想尽可能避免使用 R1C1 公式。此外,RC[-4] 会根据电子表格上的列数而变化。

Sub AutoSum()

    Dim LastCol As Integer

    Sheets("Sheet1").Select
    LastCol = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column

    Cells(2, LastCol1 + 1).Select
    ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,RC[-4]: RC[-1])"

End Sub

【问题讨论】:

    标签: excel sum subtotal vba


    【解决方案1】:

    试一试:

    Sub AutoSum()
    
        Dim LastCol As Integer
    
        With Sheets("Sheet1")
    
            LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
    
            .Cells(2, LastCol1 + 1).Formula = "=SUBTOTAL(9,Offset(B2,0,0,1," & LastCol-1 & "))"
    
        End With
    
    End Sub
    

    运行以上代码后:

    【讨论】:

    • 不,那行不通。出现在 excel 中的是 =SUBTOTAL(9,B2:B) 因此它不计算
    • @conor - 查看我编辑的版本。我测试了它,它可以工作。
    • No 还是不行。它只返回 B2 字段的值。
    • @Conor 抱歉,我又编辑了一次,忘记在偏移公式中从 LastCol 中减去 1。请参阅屏幕截图以获取工作证明。
    • 完美。这样可行。您是否介意解释或指出正确的方向,您是如何使用 (B2,0,0,1," & LastCol-1 & ")
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-06
    • 1970-01-01
    • 1970-01-01
    • 2022-11-15
    相关资源
    最近更新 更多