Sheets("Holding Cost").Range(Cells(2, 3), Cells(lastRow, 3))
завершится ошибкой, если «Стоимость удержания» не является активным листом.
lastRow = Sheets("Holding Cost").Cells(Rows.Count, "A").End(xlUp).Row
завершится ошибкой, если активным листом будет лист, отличный от рабочего листа (ie. Лист с диаграммой).
Я не математик, поэтому, предположив, что ссылки на ваши столбцы верны, попробуйте следующее ...
Dim holdingCostWorksheet As Worksheet
Set holdingCostWorksheet = Worksheets("Holding Cost")
Dim lastRow As Long
With holdingCostWorksheet
lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
With holdingCostWorksheet
Application.Run "ATPVBAEN.XLAM!Regress", .Range("C2:C" & lastRow), .Range("A2:A" & lastRow), False, True, , .Range("$k$2"), , False, False, False, False, , False
End With