I see Paul got to you before this but here it is anyway.
You don't need to select to enter data. As a matter of fact, it is frowned upon in most cases.
 Range("A2").Select
    ActiveCell.FormulaR1C1 = "NHI"
should be
Range("A2").Value = "NHI"
This goes for all selecting where you put data or formulae in a cell.


There is a continuation is this part. Use it to your advantage.
Range("E2").Select
    ActiveCell.FormulaR1C1 = "Line 1"
    Range("F2").Select
    ActiveCell.FormulaR1C1 = "Line 2"
    Range("G2").Select
    ActiveCell.FormulaR1C1 = "Line 3"
    Range("H2").Select
    ActiveCell.FormulaR1C1 = "Line 4"
    Range("I2").Select
    ActiveCell.FormulaR1C1 = "Line 5"
    Range("J2").Select
    ActiveCell.FormulaR1C1 = "Line 6"
    Range("K2").Select
    ActiveCell.FormulaR1C1 = "Line 7"
    Range("L2").Select
    ActiveCell.FormulaR1C1 = "Line 8"
    Range("M2").Select
    ActiveCell.FormulaR1C1 = "Line 9"
    Range("N2").Select
    ActiveCell.FormulaR1C1 = "Line 10"
    Range("O2").Select
    ActiveCell.FormulaR1C1 = "Line 11"
    Range("P2").Select
    ActiveCell.FormulaR1C1 = "Line 12"
    Range("Q2").Select
    ActiveCell.FormulaR1C1 = "Line 13"
    Range("R2").Select
    ActiveCell.FormulaR1C1 = "Line 14"
    Range("S2").Select
    ActiveCell.FormulaR1C1 = "Line 15"
    Range("T2").Select
    ActiveCell.FormulaR1C1 = "Line 16"
You go uninterupted from Column E to Column T which is Column 5 to Column 20
You also go uninterupted from Line 1 to Line 16
So the above snippet (32 lines) could be changed to 3 lines
For i = 5 To 20
Cells(2, i).Value = Line " & i - 4
Next i
Note: Cells(2, 1) is the same as Range("A2")
Cells uses Rows first and then columns so the 2 is for Row 2 and the 1 is for Column A (first Column)


This
Sheets("Calculations").Select
    Range("B220").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Data for Invoices").Select
    Range("C3:C162").Select
    ActiveSheet.Paste
should be replaced by something like
Sheets("Calculations").Range("B220").Copy Sheets("Data for Invoices").Range("C3:C162")
or
Sheets("Data for Invoices").Range("C3:C162").Value = Sheets("Calculations").Range("B220").Value    'values only

Mind you, in the beginning of your code you should use something like
Dim shCalc As Worksheet, shDatInv As Worksheet
Set shCalc = Worksheets("Calculations")
Set shDatInv = Worksheets("Data for Invoices")
Troughout your procedure (macro) you can now refer to these sheets as (example)
shCalc.Range("A1").Copy shDatInv.Range("B1")
instead of the longwinded example a few lines back.


This will fail if there are empty cells in the intended range.
Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
The are multiple better ways but it depends on the circumstances.


Google something like "How to use variables and why in excel"
also "How to use With.....End With in Excel macros"


I certainly would read Post #2 again if I were you.


If you want to speed up your code, you've got something like 3000 lines of code to work through.
Happy chasing.