Если сохранение того же места вставки не важно, использование. union
может быть эффективным способом для больших наборов данных.
То, что он делает, принимает все значения, которые numeric и затем вставляет их все после того, как это сделано с помощью цикла .
. При таком подходе проблема может заключаться в том, что он просто вставляет numeric значения по одномуза другим, независимо от того, где они находились в Sheet1 .
Set wb = ThisWorkbook
Dim combine As Range
Set src = wb.Sheets("sheet1")
Set tgt = wb.Sheets("sheet2")
With src
Lastrow = .Range("A" & .Rows.Count).End(xlUp).Row
For i = 8 To Lastrow
If IsNumeric(Range("A" & i)) Then
If combine Is Nothing Then
Set combine = Range("A" & i)
Else
Set combine = Union(combine, Range("A" & i))
End If
End If
Next i
End With
combine.Copy Destination:=Sheets(2).Range("A8")