VBA SUM 变量范围
VBA SUM Variable Range
我想要一个代码来在满足特定条件时对变量行求和。
例如如果 A12 为数字且 B12 为空,则在单元格 C12 中插入一个公式以求和 C3:C11。
然后在 C22 和 C30 处执行相同的操作。
我遇到的问题是不知道如何定义起始行。
Sub Test()
Dim y As Variant
Dim r As Variant
Dim StartRow As Variant
LastRow = Range("C" & Rows.Count).End(xlUp).Row
For y = 3 To 500
For r = 1 To LastRow
If InStr(1, Cells(r, 1), "Amount") Then
StartRow = r
If IsNumeric(Cells(y, 1)) And IsEmpty(Cells(y, 2)) Then
Cells(y, 3).Formula = "=SUM(C" & StartRow + 1 & ":C" & y - 1 & ")"
End If
End If
Next r
Next y
End Sub
Sub Test()
Dim y As Variant
Dim firstRow As Variant
Dim lastRow As Variant
lastRow = Range("C" & Rows.Count).End(xlUp).Row
firstRow = Cells(lastRow, 3).End(xlUp).Row
If IsNumeric(Cells(lastRow + 1, 1)) And IsEmpty(Cells(lastRow + 1, 2)) Then
Cells(lastRow + 1, 3).Formula = "=SUM(C" & firstRow & ":C" & lastRow & ")"
End If
For y = firstRow To 3 Step -1
lastRow = Cells(y, 3).End(xlUp).Row
firstRow = Cells(lastRow, 3).End(xlUp).Row
If firstRow < 3 Then firstRow = 3
If IsNumeric(Cells(lastRow + 1, 1)) And IsEmpty(Cells(lastRow + 1, 2)) Then
Cells(lastRow + 1, 3).Formula = "=SUM(C" & firstRow & ":C" & lastRow & ")"
End If
y = firstRow
If firstRow = 3 Then Exit Sub
Next y
End Sub
我想要一个代码来在满足特定条件时对变量行求和。 例如如果 A12 为数字且 B12 为空,则在单元格 C12 中插入一个公式以求和 C3:C11。 然后在 C22 和 C30 处执行相同的操作。 我遇到的问题是不知道如何定义起始行。
Sub Test()
Dim y As Variant
Dim r As Variant
Dim StartRow As Variant
LastRow = Range("C" & Rows.Count).End(xlUp).Row
For y = 3 To 500
For r = 1 To LastRow
If InStr(1, Cells(r, 1), "Amount") Then
StartRow = r
If IsNumeric(Cells(y, 1)) And IsEmpty(Cells(y, 2)) Then
Cells(y, 3).Formula = "=SUM(C" & StartRow + 1 & ":C" & y - 1 & ")"
End If
End If
Next r
Next y
End Sub
Sub Test()
Dim y As Variant
Dim firstRow As Variant
Dim lastRow As Variant
lastRow = Range("C" & Rows.Count).End(xlUp).Row
firstRow = Cells(lastRow, 3).End(xlUp).Row
If IsNumeric(Cells(lastRow + 1, 1)) And IsEmpty(Cells(lastRow + 1, 2)) Then
Cells(lastRow + 1, 3).Formula = "=SUM(C" & firstRow & ":C" & lastRow & ")"
End If
For y = firstRow To 3 Step -1
lastRow = Cells(y, 3).End(xlUp).Row
firstRow = Cells(lastRow, 3).End(xlUp).Row
If firstRow < 3 Then firstRow = 3
If IsNumeric(Cells(lastRow + 1, 1)) And IsEmpty(Cells(lastRow + 1, 2)) Then
Cells(lastRow + 1, 3).Formula = "=SUM(C" & firstRow & ":C" & lastRow & ")"
End If
y = firstRow
If firstRow = 3 Then Exit Sub
Next y
End Sub