使用row.count出现新条目时,将具有求和功能的单元格向下移动

时间:2019-03-02 19:05:54

标签: excel vba

我对此感到有点惊讶,事实证明这是一个挑战。在sheet 1上,我的输入如下所示:

Private Sub CommandButton1_Click()

erw = Sheet2.Cells(1, 1).CurrentRegion.Rows.Count + 1
'erw.Offset(1).EntireRow.Insert Shift:=xlDow

If Len(Range("c3")) <> 0 Then

Sheet2.Cells(erw, 1) = Range("c3")
Sheet2.Cells(erw, 2) = Range("c4")
Sheet2.Cells(erw, 3) = Range("c5")

Range("c3") = ""
Range("c4") = ""
Range("c5") = ""

Else
    MsgBox "You must enter an amount"
End If

End Sub

以上内容均无问题,我遇到问题的是存储信息的第2页上的以下内容:

Sub AddUp()

Dim rngcount As Long
Dim TotalA As Long
Dim rng2 As Range

rngcount = Cells(Rows.Count, "A").End(xlUp).Row

Set rng2 = Range("A28")

TotalA = Application.WorksheetFunction.Sum(ThisWorkbook.Sheets("sheet2").Range("a1:a" & rngcount))

rng2 = TotalA

真正的问题是以下Set rng2 = Range("A28"),因为这实际上是我一直在使用的作弊手段。我知道总和不超过26个条目,然后将开始新的工作表。我目前将TotalA的金额Set放入A28,但是我想做的是随着更多条目的放入,TotalA单元格向下移动。换句话说,我希望TotalA能够随着更多条目的输入而移动的范围。

我从下面的erw.Offset(1).EntireRow.Insert Shift:=xlDow开始,但是我离开了,因为需要在sheet2上插入行,以防万一有任何有价值的提要,所以我将其留在此处进行发布回来。

我一直关注的是尝试使用CurrentRegion.offset(1)来继续移动使求和函数保持向下的单元格。问题是我无法弄清楚如何基于rngcount声明范围,这可能是问题所在,因为也许我不应该使用rngcount,因为它不是object,但是我的想法是/是我可以将rngcount变成一个对象,然后使用CurrentRegion.offset(1)有点儿漫长,希望目标能够明确实现。谢谢

show.bs.modal

Image 1

2 个答案:

答案 0 :(得分:0)

看看这个,看看它是否满足您的要求。

Sub AddUp()

Dim rngcount As Long
Dim TotalA As Long
Dim rng2 As Range

rngcount = Cells(Rows.Count, "A").End(xlUp).Row

Set rng2 = Cells(rngcount + 1, 1)

TotalA = Application.WorksheetFunction.Sum(ThisWorkbook.Sheets("sheet2").Range("a1:a" & rngcount))

rng2 = TotalA

End Sub

答案 1 :(得分:0)

我通常喜欢将总公式放在工作表中,而不是在宏中进行数学运算。

Sub AddUp()

Dim rngcount As Long
Dim TotalA As Long
Dim TotalStartRng As Range
Dim TotalEndRng As Range

rngcount = Cells(Rows.Count, "A").End(xlUp).Row
Set TotalStartRng = Cells(1, 1)
Set TotalEndRng = Cells(rngcount, 1)

Cells(rngcount + 1, 1) = "=SUM(" & TotalStartRng.Address & ":" & TotalEndRng.Address & ")"

End Sub