Well, i am sure this looks silly, but why wouldn't this error checking method work when both cells are blank?
Sub Populate_Data()
Sheet3.Select
Dim a As Integer
a = Application.WorksheetFunction.CountA(Sheet3.Range(Cells(7, 1), Cells(1040000, 1)))
Sheet2.Select
For b = 1 To a
For c = 1 To...