关于快速向下求和

来源:百度文库 编辑:神马文学网 时间:2024/04/27 13:34:40
关于快速向下求和

棉花糖的代码

Sub sumdown()
    Dim cell As Range, Rng As Range
    On Error Resume Next
        Set Rng = Intersect(Selection.SpecialCells(xlCellTypeBlanks), UsedRange)
    If Err <> 0 Then Exit Sub
    If Rng Is Nothing Then Exit Sub
    For Each cell In Selection.SpecialCells(xlCellTypeBlanks)
        cell.Formula = "=sum(" & Range(cell.Offset(1, 0).Address, cell.Offset(1, 0).End(xlDown).Address).Address(0, 0) & ")"
    Next cell
    Application.SendKeys "{F2}"
End Sub

这个cell In Selection.SpecialCells(xlCellTypeBlanks)意思

是 取得当前第n个空行向下的第1个单元格地址---》cell.Offset(1, 0).Address
是 取得当前第n个空行向下的非空的最后1个单元格-地址--》cell.Offset(1, 0).Address

所以用在 快速向下求和 这个不是很恰当

************************************

ub 向下求和()
Dim I As Integer, Rng As Range, Rng1 As Range
On Error Resume Next
Selection.ClearContents
For Each Rng1 In Selection
    If Len(Rng1.Offset(1, 0)) = 0 Then GoTo 1
    If Application.CountA(Range(Rng1.Offset(1, 0), Cells(Rows.Count, Rng1.Column))) = 0 Then End
   
    Set Rng = Intersect(Rng1.Offset(1, 0).CurrentRegion, Range(Cells(1, Rng1.Column), Cells(Rows.Count, Rng1.Column)))
    Rng1.Formula = "=SUM(" & Rng.Address(0, 0) & ")"
1:
Next
For Each Rng1 In Selection
    If Len(Rng1) <> 0 Then Rng1.Activate: Exit For
Next
Application.SendKeys "{ctrl Z}"
End Sub