dtDOM1a.LSLocalTime = doc.DOM1a(0)
Wenn das Feld nicht gesetzt ist, dann kommt da ein Leerstring zurück und der ist nun mal definitiv kein Datum.
Noch eine Anmerkung ist nicht bös gemeint...
Dim intDifference As Double
...
intDifference = dtNow.TimeDifference(dtDOM1a )
Du nennst eine Variable intDifference, deklarierst Sie als Double und rufst dann eine Funktion auf, welche dort einen Long zurück gibt.
Etwas viel an Datentypen ;)