The Target.Value is looking for the Range("InputRange")) . What is in it? It looks like a named range. The code will trigger if the target and named range intersect

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("InputRange")) Is Nothing Then
       'the cell that changed isn't in the range we're concerned with
       If Target.Value = "" Then
       'Do something
         ElseIf Target.Value = "" Then                                                                         '<------ type mismatch error here
        Target.Value = Target.Offset(0, 3).Value    're-assert the default value
        End If
            End If
End Sub