2014-05-16 85 views
0

我有一个程序,我需要找到第7到30列(G到AD)的总和。我想要做的是循环并插入公式(= SUM(Columns(i)2:Columns(i)1000)),但显然Columns(i)不是字母,而是数字。这不符合SUM所需的格式,所以我想知道我能做些什么。循环遍历列插入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。对象不支持这个属性或方法。“我试图对这个错误进行研究,但无法解决我的情况。谢谢你的帮助。

回答

3

你不需要在这里循环,使用替代单行:

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

Excel会自动调整公式:

    G1
  • 你必须=SUM(G2:G1000)
  • H1你会有=SUM(H2:H1000)
  • ....
  • AD1你应该有=SUM(AD2:AD1000)
+1

我知道我让它比它所需要的要难得多。非常感谢你。 – Costigan555