I ran it once, and it took quite a while to complete (as you know), and hurt my eyes from all the flickering lol.
So I put Application.Screenupdating into the macro and it seemed to run a lot faster, and didn't hurt my eyes either.
Put this at the top of your macro.
Sub InventionCashFlows()'Creates cash flow for each unique invention
Dim invention As Integer
Dim numberofinventions As Integer
Dim rowoffset As Integer
Dim namerowoffset As Integer
Application.ScreenUpdating = False '<------------------------------------ THIS LINE
With Sheets("Inventions")
.Rows(18 & ":" & .Rows.Count).Clear
End With
And this at the bottom of your macro.
Sheets("Data").Select
Range("a1").Offset(invention, 0).Select
Selection.Copy
Sheets("Inventions").Select
Range("A2").Offset(namerowoffset, 0).Select
ActiveSheet.Paste
Range("A1").Select
Application.ScreenUpdating = True '<------------------------------------ THIS LINE
End Sub
Original Code = 42 Seconds to complete
Edited code with screenupdating = 8 Seconds to complete