Я хотел бы предложить вам два разных метода.
Одним из них является формула массива, а вторым - код VBA для фильтрации записей, совпадающих с текущей датой.
{=IFERROR(INDEX(Sheet1!$A$4:$D$10, SMALL(IF(COUNTIF(Sheet1!$E$4, Sheet1!$A$4:$A$10), ROW(Sheet1!$A$4:$D$10)-MIN(ROW(Sheet1!$A$4:$D$10))+1), ROW(A1)), COLUMN(A1)),"")}
NB:
E4 - ячейка, в которой записана сегодняшняя дата. Завершите формулу с помощью Ctrl+Shift+Enter, затем перетащите вправо до нужных столбцов, а затем вниз.
Если у вас огромный диапазон данных, лучше используйте этот код VBA.
Sub CopyRowWithCurrentDate()
Dim xRgS As Range, xRgD As Range, xCell As Range
Dim I As Long, xCol As Long, J As Long
Dim xVal As Variant
On Error Resume Next
Set xRgS = Application.InputBox("Select the Date Column:", "Filter On Date", Selection.Address, , , , , 8)
If xRgS Is Nothing Then Exit Sub
Set xRgD = Application.InputBox("Select a destination cell:", "Filter On Date", , , , , , 8)
If xRgD Is Nothing Then Exit Sub
xCol = xRgS.Rows.Count
Set xRgS = xRgS(1)
Application.CutCopyMode = False
J = 0
For I = 1 To xCol
Set xCell = xRgS.Offset(I - 1, 0)
xVal = xCell.Value
If TypeName(xVal) = "Date" And (xVal <> "") And (xVal = Date) Then 'You should manipulate the days you are filtering by typing accurate days!
xCell.EntireRow.Copy xRgD.Offset(J, 0)
J = J + 1
End If
Next
Application.CutCopyMode = True
End Sub
Надеюсь, это поможет вам.