Hallo,
while Excel.Cells[(index+i),2].Value <> '' do
Das '' ist kein Variant. Versuche es bitte einmal mit
while Excel.Cells[(index+i),2].Value <> EmptyParam do
EmptyParam ist ein "leerer" Variant, gfls. musst du noch die
Unit Variants in die Uses-Klausel aufnehmen.