查找当前月份并将总和粘贴到它

时间:2016-07-31 07:24:16

标签: excel excel-vba vba

我正在尝试将总天数总和粘贴到当月。

这是我到目前为止所做的,但它不会根据当前月份将总数粘贴到容器列

enter image description here

这是我的代码

Sub Macro1()
    '
    ' Macro1 Macro
    '
    For i = 2 To 13
        If Cells(i, 5) = Month Then Cells(i, 6) = Cells(34, 2)
        Cells(i, 6).Select
        Selection.copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        Application.CutCopyMode = False
    Next i
End Sub

1 个答案:

答案 0 :(得分:0)

您可以像这样使用脚本字典:

Sub SumContainersByMonth()
    Dim c As Range, DataRange As Range
    Dim count As Double
    Dim key As String
    Dim k, Keys, Items
    Dim dict As Object

    Set dict = CreateObject("Scripting.Dictionary")

    Set DataRange = Range("A2", Range("A1").End(xlDown))

    For Each c In DataRange
       key = DateSerial(Year(c), Month(c), 1)
       count = c.Offset(0, 1) + dict(key)
       dict(key) = count
    Next

    Keys = dict.Keys
    Items = dict.Items

    Range("E2").Resize(UBound(Keys) + 1) = WorksheetFunction.Transpose(Keys)
    Range("F2").Resize(UBound(Items) + 1) = WorksheetFunction.Transpose(Items)

End Sub

我会对您的项目设置进行一些更改并对数据进行小计。

以下是

我会在Day的左边插入一个Month-Year列。 Month-Year的值应该等于Day列的值,但它的格式为MMM-YY。

enter image description here

在“数据”选项卡中,单击“小计”。

enter image description here

应用下图中的设置。

enter image description here

在行号的左侧,单击 1 2 3 以选择如何显示数据。

enter image description here