【问题标题】:Excel sum all column values until reach certain sum then export last summed cell range address or filter sum rangeExcel对所有列值求和直到达到某个总和然后导出最后求和的单元格范围地址或过滤总和范围
【发布时间】:2021-07-08 11:20:56
【问题描述】:

尝试了几个小时才能找到答案,但没有运气。 得到带有 A 列的 excel 表,其中 A 列的数字像 1,2,3,6,6,3,4,5,6 我想要从顶部求和列值直到达到 20 或更少,然后导出 sum 中使用的最后一个值的地址或 最好是让自动过滤器选择所有这些值整行并删除它们。 我猜VBA可以做到这一点。 谢谢你

【问题讨论】:

    标签: excel vba filter sum


    【解决方案1】:

    删除行(“总和小于”)

    Option Explicit
    
    Sub deleteRows()
        
        Const sFirst As String = "A1"
        Const sSum As Double = 20
        
        Dim rg As Range
        With Range(sFirst)
            Dim lCell As Range
            Set lCell = .Resize(.Worksheet.Rows.Count - .Row + 1) _
                .Find("*", , xlFormulas, , , xlPrevious)
            If lCell Is Nothing Then Exit Sub
            Set rg = .Resize(lCell.Row - .Row + 1)
        End With
        Dim rCount As Long: rCount = rg.Rows.Count
        
        Dim Data As Variant
        If rCount = 1 Then
            ReDim Data(1 To 1, 1 To 1): Data(1, 1) = rg.Value
        Else
            Data = rg.Value
        End If
        
        Dim cSum As Double
        Dim r As Long
        
        For r = 1 To rCount
            If IsNumeric(Data(r, 1)) Then
                cSum = cSum + Data(r, 1)
                If cSum > sSum Then
                    Exit For
                End If
            End If
        Next r
        
        If r > 1 Then
            rg.EntireRow.Resize(r - 1).Delete
        End If
        
    End Sub
    

    【讨论】:

    • 你就是男人!非常感谢。真的很感激。毫不奇怪,我找不到答案,比我的技能要复杂得多
    猜你喜欢
    • 1970-01-01
    • 2021-07-26
    • 2014-06-13
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2020-06-05
    • 1970-01-01
    相关资源
    最近更新 更多