Try:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim RngCell As Range
Dim DrpDown As String

If Target.Column = 1 And Target.Row = 5 Then
    DrpDown = Target.Value
    Set RngCell = Cells(2, 5)
End If
    
    If DrpDown = "$/square foot" Then
    With RngCell
        .NumberFormat = "$#,##0.00"
  
    ElseIf DrpDown = "%/construction cost" Then
    With RngCell
        .NumberFormat = "0.0%"
    End If
    
End Sub
EDIT: You also didn't "End With" in either case.