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