循环遍历列以插入SUM公式

时间:2014-05-16 19:19:11

标签: excel vba loops excel-vba

我有一个程序,我需要找到第7到30列(G到AD)的总和。我想要做的是循环并插入公式(= SUM(列(i)2:列(i)1000))但显然列(i)不是字母而是数字。这不符合SUM所要求的格式,所以我想知道我能做什么。

我有一个程序,其中将删除旧工作表并添加新工作表以保存产品的配置数据。这意味着公式不能在自己的表格或任何其他表格中。价格将保留在G到P栏和U到AD栏中,我需要找到它的总和,并将其放在第1行的相应数据之上。当我尝试:

       For i = 7 To 30
            wsNewSheet.Cells(1, i).Value = "=SUM(" & Columns(i).Select & "2:" & Columns(i).Select & "1000)"
        Next i

由于某种原因,列(i)返回“真”。我还尝试在创建新工作表(wsNewSheet)时将总计放在不同的工作表中。

            For i = 2 To 30
            For f = 7 To 30
                wsTotals.Cells(1, i).Value = "=SUM(" & wsNewSheet & "!" & Columns(f).Select & "2:" & Columns(f).Select & "1000)"
            Next f
        Next i

然而,这也不起作用。该语句返回“运行时错误'438”。 Object不支持此属性或方法。“我试图对此错误进行研究,但无法解决我的问题。谢谢你的帮助。

1 个答案:

答案 0 :(得分:4)

你不需要循环,改为使用单行:

Range("G1:AD1").Formula = "=SUM(G2:G1000)"

Excel自动调整公式:

  • G1您有=SUM(G2:G1000)
  • H1您有=SUM(H2:H1000)
  • ....
  • AD1您有=SUM(AD2:AD1000)