Well, i am sure this looks silly, but why wouldn't this error checking method work when both cells are blank?
Code:
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 13
Sheet3.Cells(6 + b, (c * 7) - 5).Value = Application.WorksheetFunction.VLookup(Sheet3.Cells(6 + b, 1).Value, Sheet2.Range(Cells(7, 1), Cells(6 + a, 14)), c + 1, False)
Sheet3.Cells(6 + b, (c * 7) - 4).Value = Application.WorksheetFunction.VLookup(Sheet3.Cells(6 + b, 1).Value, Sheet2.Range(Cells(267, 1), Cells(266 + a, 14)), c + 1, False)
Dim var000 'check if there is an error in calculating hit rate
var000 = Sheet3.Cells(6 + b, (c * 7) - 4).Value / Sheet3.Cells(6 + b, (c * 7) - 5).Value
Dim iserr000 As Boolean
iserr000 = IsError(var000)
If iserr000 = True Then
Sheet3.Cells(6 + b, (c * 7) - 3).Value = ""
Else
Sheet3.Cells(6 + b, (c * 7) - 3).Value = Sheet3.Cells(6 + b, (c * 7) - 4).Value / Sheet3.Cells(6 + b, (c * 7) - 5).Value
End If
Next c
Next b
End Sub