如何编写用于动态行求和的宏

时间:2011-06-30 05:30:48

标签: excel vba excel-vba

我正在使用excel 2010并从SQL分析服务中检索数据。

当我从excel刷新数据时,行在绑定到外部数据源时变得动态。我正在添加一个单独的列,其中包含用于总计总量的公式。

随着excel中行的增加或减少,自定义列的对齐就会消失。

如何解决这个问题,即在添加和删除行时,值的求和变为动态?

如何为执行此任务编写宏?

这是我正在尝试的,但我收到以下错误:

Public Sub ProcessData()
Dim i As Long
 Dim iLastRow As Long
Dim iStart As Long

With Sheet1

   iLastRow = .Cells(.Rows.Count, "D").End(xlUp).Row
 iStart = 5
  For i = 1 To iLastRow + 1
  If .Cells(i, "C").Value <> "" And .Cells(i, "B").Value <> "" Then
.Cells(i, "D").Value = 
 Application.Sum(.Range(.Cells(iStart, "C").Value + .Cells  (   iStart, "B").Value))
iStart = i + 1
End If
Next i
 End With
 End Sub

enter image description here

1 个答案:

答案 0 :(得分:0)

当您创建与数据库(或其他数据源)的连接时,导入数据旁边的列中的公式位置会在刷新时调整以应对此excat问题。这些公式通常采用=SomeFunction([@ColumnName], ...)

的形式

同样,在刷新连接时,=SUM(ConnectionName[ColumnName])形式的总和将自动正确