从列中查找值和Sum值

时间:2015-11-12 03:39:00

标签: excel vba excel-vba

我是VBA的新手,感谢您为以下问题编写宏的帮助:

我正在制定流动性报告,因为供应商在规定的日期付款,我需要"移动"特定日期的所有交易。

实际上,我需要识别一个单元格(基于另一个单元格的值)并将之前的范围中的值相加并使用原始值清除单元格。

Excel worksheet

实施例: - CIT 1(单元格AA11)是供应商付款的日期 - 范围X10:Z10中的值必须在AA10中求和并从范围X10中清除:Z10

PS:CIT和因此移动范围"在CIT日期并不总是一样的。这取决于CIT定义的日历日。

1 个答案:

答案 0 :(得分:0)

基于此,

Sub Sum_and_Clear()
    Range("AA10")=Application.WorksheetFunction.Sum(Range("X10:Z10"))
    Range("X10:Z10").Clear
End Sub

这将扫描第11行以查找CIT*并对前3列进行求和并清除它们:

Sub test_giovannicalamai()
Dim Ws As Worksheet, _
    LastCol As Integer, _
    RgToSum As Range, _
    CitCell As Range

Set Ws = ActiveSheet
With Ws
    LastCol = .Cells(.Columns.Count, 4).End(xlToLeft).Column
    For j = 9 To LastCol
        If LCase(Left(.Cells(11, j), 3)) <> "cit" Then
        Else
            Set CitCell = .Cells(11, j)
            Set RgToSum = .Range(CitCell.Offset(-1, -3), CitCell.Offset(-1, -1))
            CitCell.Value = Application.WorksheetFunction.Sum(RgToSum)
            RgToSum.Clear
        End If
    Next j
End With

End Sub