我是Excel中的新手,需要帮助。
我有一张Nominal Journal的电子表格。 B列由标称代码组成。列J由借方组成,而列K由贷方组成。
每周取决于事务的数量,数据占用的行长度会有所不同,即在一周内,我们可以从第01行到第100行有数据,在另一周我们可以有来自行的数据01到第180行或第85行。
第一行是标题行,后跟数据。
我的问题:
我想找到J和K列中的最后一行,并将光标移动到下一个空单元格中。例如,如果最后一行是#100行,那么我希望光标移动到J101。我已经实现了这个目标。
我想在名义代码以“7”开头的所有行的单元格J101中进行总计J列的总和。
同样,我想要名义代码以“7”开头的所有行的单元格K101中的列K的总和。
我编写了以下代码,但问题是当我运行宏时,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
非常感谢任何帮助。
答案 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