Вы не указали название или индекс своих рабочих листов, поэтому мне пришлось использовать общие индексы 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
.