查找最后一行并总计多个列

我正在创build一个新的macros,使我们每两周使用一次下载的自定义报告。

我使用其中一个下载logging了这个macros,这给了我所需要的一切,除了我的最后一部分。

我需要find最后一行,向下一行,然后总结J,K,L和M列。然后在“I”列中,“Total”一词应该在同一行上。

要清楚,我想从J2:Jxxx总结J列,其中xxx是最后一行。

每次我们下载这个报告时,行数都会有所不同,所以我不能使用静态行号作为公式的一部分。

我需要知道如何写这个,我已经search了几个论坛和Excel站点来得到这个,但没有任何工作。 另外,这样做是否可以用一组代码覆盖所有列,或者是否必须为每列重复?

这里是我的代码(请记住,现在是一个大杂烩,尝试各种帮助,我在网上发现的一整天):

 EndRowI = Range(I65536).End(xlUp).Row .Sheets(x).Range("I" & EndRowI + 1).Formula = "=SUM(I2:I" & EndRowI & ")" EndRowH = Range("H" & Rows.Count).End(xlUp).Row Range("H" & LR + 1).FormulaR1C1 = "Total" 

对于它的价值,我的工作表的名字是“合并”,这是我的macros的一个更早的步骤。

谢谢!

*请修正您的工作表名称,因为我的示例引用了ThisWorkbook Sheet1

此代码findJ:M列范围的最大行数,然后对每列进行求和,并将它们显示在最大行号的H列中的TOTAL标题中。 (因为你的问题不是很清楚,我试图根据你的意见找出这个问题。)

 Option Explicit Sub SubUntilLastRow() Dim CurCal As XlCalculation Dim wb As Workbook, ws As Worksheet, colsLastRow As Long Dim cols As Variant, SumCols As Long, colsArray As Variant Dim biggestRow As Long Application.ScreenUpdating = False CurCal = Application.Calculation Application.Calculation = xlCalculationManual biggestRow = 1 Set wb = ThisWorkbook Set ws = wb.Sheets("Sheet1") colsArray = Array("J", "K", "L", "M") For Each cols In colsArray colsLastRow = ws.Cells(Rows.Count, cols).End(xlUp).Row If colsLastRow > biggestRow Then biggestRow = colsLastRow + 1 End If Next cols For Each cols In colsArray colsLastRow = ws.Cells(Rows.Count, cols).End(xlUp).Row ws.Cells(biggestRow, cols).Formula = "=SUM(" & cols & "2:" & cols & colsLastRow & ")" Next cols ws.Range("H" & biggestRow).Value = "TOTAL" Application.ScreenUpdating = True Application.Calculation = CurCal End Sub