Dein Programm bekommt Daten immer als Typ
OLE-Variant.
Die meisten Datentypen lassen sich automatisch zu einem String konvertieren, manche aber auch nicht.
Insbesondere für Zellen ohne Inhalt wird kein leerer String sondern "Unassigned" zurückgegeben.
Da wird auch mit Copy kein String draus, Copy verlangt als Parameter bereits einen String.
Versuchs doch mal in der Art:
Delphi-Quellcode:
var
vName, vVorname: Variant;
sNameVorname:
string;
begin
{...}
i := index7[j];
while True
do
begin
Inc(i);
vName := Excel.Cells[i, 2].Value;
vVorname := Excel.Cells[i, 3].Value;
if VarIsEmpty(vName)
or (vName = '
')
then
Break;
if VarIsEmpty(vVorname)
or (vVorname = '
')
then
sNameVorname := vName
else
sNameVorname := vName + '
' + vVorname;
ComboBox4.Items.Add(sNameVorname);
end;
Dec(i);
{...}
end;