Rng.Value() и Rng.Value2() - возвращают значение в ячейке. Только их надо присвоить переменной типа COMVariant. А потом уже у этой переменной проверить тип и, в зависимости от него (текст, число...) - присвоить переменной нужного типа свойствами double(), bstr() и т.д...
PHP код:
{
LineNum LineNum;
str 50 Description;
COMVariant sNL;
......
Rng = Ws.Range("A"+strltrim(strrtrim(num2str(numrow,5,0,0,0))));
sNL = Rng.Value();
if(sNL.toString() != "VT_EMPTY")
LineNum = sNL.double();
Rng = Ws.Range("B"+strltrim(strrtrim(num2str(numrow,5,0,0,0))));
sNL = Rng.Value();
if(sNL.toString() != "VT_EMPTY")
Description = sNL.bStr();
...
}