The copy value method is not the bottleneck. It's hard to say what is without seeing your actual workbook. If you copy the 15000 rows in your example workbook, you can see how fast it is.
The code below suspends Calculations, Events, and Screenupdating while copying. This may improve the speed.
Sub Copy_to_Matched_Column()
Dim Found As Range, lCalcState As Long
Set Found = Range("D1:R1").Find(What:=Range("B1").Value, _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not Found Is Nothing Then
With Application
lCalcState = .Calculation
.Calculation = xlCalculationManual
.EnableEvents = False
.ScreenUpdating = False
Found.Offset(1).Resize(14998).Value = Range("A3:A15000").Value
.Calculation = lCalcState
.EnableEvents = True
.ScreenUpdating = True
End With
Else
MsgBox "No column match found. ", , "No Column Match"
End If
End Sub
Bookmarks