如何让 Excel 自动复制带有日期的特定单元格

如何让 Excel 自动复制带有日期的特定单元格

我有一个个人交易日志,我想每月制作一次交易摘要,如何制作具有指定月份的 Excel 复制单元格。

例如我有交易日志

         A            B
1    01/25/2018    USD 50.3
2    02/01/2018    USD 21.5
3    02/09/2018    USD 25.4
4    02/17/2018    USD 18.9
5    02/24/2018    USD 34.9
6    02/28/2018    USD 70.5
7    03/02/2018    USD 50.5
8    03/04/2018    USD 22.1

Note: The dates are formatted as date in excel, and the amount are formatted as
Accounting cell

我如何让 Excel 自动将二月份的交易复制到其他工作表。

答案1

您没有提供工作表的名称或索引,所以我不得不使用1&的通用索引2

提供的信息有限,这是我能为您提供的最好的信息。但修改代码以适合您想要做的事情应该不难。

Option Explicit

Sub copyTransactions()

    ' ws = the worksheet that contains the code to copy
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets(1)

    'Create a multi-dimensional array that contains your two columns of data
    Dim myArr() As Variant
    myArr = ws.UsedRange.Columns("A:B").Value

    'ws2 = the worksheet you are copying TO
    Dim i As Long, ws2 As Worksheet, x As Long
    Set ws2 = ThisWorkbook.Worksheets(2)

    'Loop the array, and if it matches your month of 2 (Feb) then copy
    'the data from ws to ws2
    With ws2
        For i = 1 To UBound(myArr)
            If month(myArr(i, 1)) = 2 Then  ' 2 = February
                x = x + 1
                .Cells(x, 1) = myArr(i, 1)  ' the ,1 is column A
                .Cells(x, 2) = myArr(i, 2)  ' the ,2 is column B
            End If
        Next
    End With

End Sub

简而言之,您要做的就是获取 A + B 列并将它们放入数组中myArr()。然后,您将在 A 列中循环此数组并设置条件以匹配与您的月份索引 2(2 = 二月)匹配的任何月份。如果找到,则继续将数组复制到ws2

答案2

虽然 VB 代码很棒,但我不确定对于那些不熟悉开发人员控制台的人来说这是否是最好的解决方案。

您可以为每个月创建一个列,提取该月的交易,然后将该列相加得出总数。

在 C 列中使用类似以下内容的内容:

=如果(MONTH($A2)=1,$B2,0)

其中 1 表示一月,2 表示二月...
然后在 D 列中重复输入二月

相关内容