Этот код вставит 3 строки между группами значений (даже уникальными значениями). Данные не нужно фильтровать. Он перебирает Column D
, проверяет ячейку над текущей ячейкой и, если не совпадает со значением, вставит между ними 3 строки. Возможно, вам придется сначала отсортировать данные, в зависимости от того, что вы хотите.
Sub InsertRowsBetweenGroups()
Dim ws As Worksheet, lr As Long, i As Long
Set ws = ThisWorkbook.Sheets("Sheet1") 'Change as needed
lr = ws.Cells(ws.Rows.Count, 4).End(xlUp).Row
For i = lr - 1 To 2 Step -1
If Cells(i, "D") <> Cells(i - 1, "D") Then
Cells(i, "D").Resize(3).EntireRow.Insert Shift:=xlDown
End If
Next i
End Sub