我有一个个人交易日志,我想每月制作一次交易摘要,如何制作具有指定月份的 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 列中重复输入二月