我需要有关 vba word 表格列计算的帮助。我的 Word 表格是使用 Access 数据库 VBA 在 Word 模板中创建的。我需要计算表格最后一列的总和。但我的表格没有定义的行数。我尝试了各种方法都无济于事……以下成功创建了表格并进行了计算,但只有表格的最后两行(目前我所在的记录有 3 行),但没有像希望的那样计算整个列的总和。我搞不清楚我遗漏了什么?
Dim rs2 As DAO.Recordset
Set rs2 = CurrentDb().OpenRecordset("SELECT * FROM InvoiceServiceLineItems WHERE InvoiceID=" & Forms!invoicedetail!ID, dbOpenSnapshot)
With rs2
.MoveLast
If Not .EOF Then
.MoveLast
.MoveFirst
End If
End With
Dim indx As Integer
For indx = 1 To rs2.RecordCount
With oDoc.Tables(3)
.Cell(indx, 1).Range.Text = Nz(rs2![LineItemCode], "")
.Cell(indx, 2).Range.Text = Nz(rs2![Description], "")
.Cell(indx, 3).Range.Text = Nz(rs2![InitialTerm], "")
.Cell(indx, 4).Range.Text = Format(Nz(rs2![UnitPrice], ""), "Currency")
.Cell(indx, 5).Range.Text = Nz(rs2![Quantity], "")
.Cell(indx, 6).Range.Text = Format(Nz(rs2![LineTotal], ""), "Currency")
If rs2.AbsolutePosition <> rs2.RecordCount = -1 Then .Columns(1).Cells.Add
.Cell(indx, 6).AutoSum
End With
rs2.MoveNext
Next indx
答案1
据推测,您可能想要在循环之外设置自动求和,并且总和的单元格索引将是“recordcount+1”。
您还可以使用单独的查询在最后进行求和,例如
SELECT sum(LineTotal) as querySumTotal FROM InvoiceServiceLineItems WHERE InvoiceID=" & Forms!invoicedetail!ID