not sure which line is having error....
One thought is that the NewEmailItem object has been disposed of as part of the .Send call. Move the Set command inside of the loop and see if that works.
Dim i As Integer
For i = 4 To 27
Set NewEmailItem = EmailApp.CreateItem(olMailItem)
Add msgbox or debug.print statements to display what steps your code is doing and what variable contents are. You have to figure out what statement and variable are causing your problem because we don't have access to your spreadsheet.