Try this. In VBA when you use WorksheetFunction, it is not simply a copy of the actual worksheet function. It is a VBA Function with parameters, and the parameters must be VBA expressions. In VBA, using F1 unadorned like that means it's an undeclared variable. It will cause a compile error if you use Option Explicit, and otherwise will just be a Variant variable that hasn't been assigned a value. You have to use an expression that results in a Range.
Dim lngLastRow As Long
lngLastRow = Cells(Rows.Count, "A").End(xlUp).Row
Range("h1:h" & lngLastRow).Formula = Application.WorksheetFunction.IfError(Mid(Range("F1"), (Find("-", Range("F1")) + 1), 2), Range("F1"))
Bookmarks