Then it sounds like you need to re-define your lRow variable if either of the first two IF statements are true. There are probably other people smarter than me on this message board that would have a more elegant solution, but see if this works for you:
Private Sub cmdEmail_Click()
Dim lRow As Long
Dim sht As Worksheet
Set sht = Sheets("Email")
lRow = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row
If Not IsEmpty(Sheets("Form").Range("K23").Value) Then
Range("A" & lRow + 1).Value = Sheets("Form").Range("K23").Value
Range("B" & lRow + 1).Value = Sheets("Form").Range("E23").Value
Range("C" & lRow + 1).Value = Sheets("Form").Range("F23").Value
Range("D" & lRow + 1).Value = Sheets("Form").Range("H23").Value
lRow = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row
End If
If Not IsEmpty(Sheets("Form").Range("K27").Value) Then
Range("A" & lRow + 1).Value = Sheets("Form").Range("K27").Value
Range("B" & lRow + 1).Value = Sheets("Form").Range("E27").Value
Range("C" & lRow + 1).Value = Sheets("Form").Range("F27").Value
Range("D" & lRow + 1).Value = Sheets("Form").Range("H27").Value
lRow = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row
End If
If Not IsEmpty(Sheets("Form").Range("K37").Value) Then
Range("A" & lRow + 1).Value = Sheets("Form").Range("K37").Value
Range("B" & lRow + 1).Value = Sheets("Form").Range("E37").Value
Range("C" & lRow + 1).Value = Sheets("Form").Range("F37").Value
Range("D" & lRow + 1).Value = Sheets("Form").Range("H37").Value
End If
End Sub
Bookmarks