Я не могу получить рабочее состояние для сопоставления 2D-массивов. Я попробовал другой подход, и он ближе к решению, но все равно не дает результата.
Вот что я хочу сделать:
В листе 1 у меня есть разные даты, которые проходят через столбцы, и размер не определен. Ниже этих дат находятся значения:

На листе 2 у меня есть меньшее подмножество дат (которое должно существовать на листе 1):

С помощью кода я хочу сопоставить даты в sheet1 и sheet2, и только если для параметра true установлено значение true, я хочу записать соответствующие значения из sheet1 в sheet2.
Это результат:

Я хочу использовать массивы для дат в sheet1 и sheet2 и, если они совпадают, записать массив значений. Но массивы дат оказываются пустыми, поэтому условие совпадения не работает. Я также не получаю сообщение об ошибке:
Sub test()
Dim arrAmounts() As Variant
Dim arrDates_w2() As Variant
Dim arrDates_w1() As Variant
Dim Lastcol_w2 As Integer
Dim Lastcol_w1 As Integer
Dim LastRow As Integer
Dim i As Integer
Dim w As Integer
Dim d As Integer
Dim f As Integer
Dim g As Integer
Dim w1 As Worksheet
Dim w2 As Worksheet
Set w1 = Sheets("Sheet1")
Set w2 = Sheets("Sheet2")
LastRow = 17 'last row on both sheets
f = 1
g = 1
With w2
Lastcol_w2 = .Cells(3, Columns.Count).End(xlToLeft).Column
'array of dates in w2
ReDim arrDates_w2(1, Lastcol_w2)
End With
With w1
Lastcol_w1 = .Cells(3, Columns.Count).End(xlToLeft).Column
'Assign arrays:
ReDim arrAmounts(LastRow, Lastcol_w1)
ReDim arrDates_w1(1, Lastcol_w1)
For i = 1 To LastRow
For d = 1 To UBound(arrDates_w1, 2)
arrAmounts(i, d) = .Cells(3 + i, 2 + d)
Next
Next
'Match the dates in worksheets 1 and 2
For i = 1 To LastRow
For w = 1 To UBound(arrDates_w2, 2)
For d = 1 To UBound(arrDates_w1, 2)
If arrDates_w2(1, w) = arrDates_w1(1, d) Then
w2.Cells(i + 3, 2 + w) = arrAmounts(i, f + 3)
End If
Next
Next
Next
End With
End Sub
Буду признателен за предложения.