查找列中的最后一个空单元格&然后总结上面的所有单元格

时间:2013-12-07 15:18:48

标签: excel-vba vba excel

我是Excel中的新手,需要帮助。

我有一张Nominal Journal的电子表格。 B列由标称代码组成。列J由借方组成,而列K由贷方组成。

每周取决于事务的数量,数据占用的行长度会有所不同,即在一周内,我们可以从第01行到第100行有数据,在另一周我们可以有来自行的数据01到第180行或第85行。

第一行是标题行,后跟数据。

我的问题:

  1. 我想找到J和K列中的最后一行,并将光标移动到下一个空单元格中。例如,如果最后一行是#100行,那么我希望光标移动到J101。我已经实现了这个目标。

  2. 我想在名义代码以“7”开头的所有行的单元格J101中进行总计J列的总和。

  3. 同样,我想要名义代码以“7”开头的所有行的单元格K101中的列K的总和。

  4. 我编写了以下代码,但问题是当我运行宏时,sumproduct函数会考虑将要放置总数的单元格,即总和范围是B2:B101而不是B2 :B100和J2:J101而不是J2:J100。

    以下是代码的副本:

    Sub Macro6()
    '
    ' Macro6 Macro
    ' Column Totals
    '
    ' Keyboard Shortcut: Ctrl+Shift+L
    '
        Range("J1").Select
        ActiveCell.End(xlDown).Offset(1, 0).Select
        ActiveCell.FormulaR1C1 = "=SUMPRODUCT((LEFT(R2C2:RC2,1)+0=7)*(R2C:RC))"
        Range("J143").Select
    End Sub
    

    非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

这是你在尝试什么?我已对代码进行了评论,因此您不应该在理解代码时遇到问题。但如果你还是那么回帖。

Option Explicit

Sub Sample()
    Dim ws As Worksheet
    Dim lRow As Long, frmlaRow As Long

    '~~> Set this to the relevant worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")

    With ws
        '~~> Find the last row in Col J
        lRow = .Range("J" & .Rows.Count).End(xlUp).Row
        '~~> row where the formula will be inserted
        frmlaRow = lRow + 1

        .Range("J" & frmlaRow).Formula = "=SUMPRODUCT((LEFT($B$2:$B$" & lRow & _
                                     ",1)=7)*($J$2:$J$" & lRow & "))"

        '~~> Find the last row in Col K
        lRow = .Range("K" & .Rows.Count).End(xlUp).Row
        '~~> row where the formula will be inserted
        frmlaRow = lRow + 1

        .Range("K" & frmlaRow).Formula = "=SUMPRODUCT((LEFT($B$2:$B$" & lRow & _
                                     ",1)=7)*($K$2:$K$" & lRow & "))"
    End With
End Sub