Форум: "Основная";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
ВнизОшибка из Excel. Не пойму почему. Найти похожие ветки
← →
Goida © (2004-03-11 16:14) [0]Вот такой код:
var
i: integer;
spOperPolyShow: TStoredProc
...
with spOperPolyShow do
while Eof do
begin
ExcelApp.Range["A1", EmptyParam].Value := i;
inc(i);
Next;
end;
при попытке присвоить целое значение ячейке, VB в Excel выдает сообщение о том, что:
Run-time error: "13"
Type mismatch
Но при этом значение в ячейку помещаются... Объясните в чем дело?
← →
Digitman © (2004-03-11 16:21) [1]
> while Eof
может, все-таки while not Eof ?
← →
Digitman © (2004-03-11 16:22) [2]
> при этом значение в ячейку помещаются
что видим в рез-те в ячейке ?
← →
Goida © (2004-03-11 16:23) [3]Да, правильно :)
Но вопрос не в этом.
← →
Goida © (2004-03-11 16:25) [4]
> что видим в рез-те в ячейке ?
Соответствующие номера. Я просто поставил цикл посмотреть как долго будет работать, а чтобы видеть, что не зависла машина, захотел выводить номера итераций в Excel.
← →
Digitman © (2004-03-11 16:25) [5]итак, что видим после выполнения этого кода в ячейке А1 ?
← →
Digitman © (2004-03-11 16:27) [6]
> Соответствующие номера
какие номера ? пишешь все время в одну и ту же ячейку А1
если перед циклом ты стоял на первой записи в НД и цикл не был прерван исключением, ты должен увидеть в ячейке значение, соответствующее числу записей в НД .. есть такое соответствие ?
← →
Digitman © (2004-03-11 16:36) [7]var
i: integer;
spOperPolyShow: TStoredProc
...
with spOperPolyShow do
begin
i := 1;
First;
while not Eof do
try
ExcelApp.Range["A" + IntToStr(i), EmptyParam].Value := i;
inc(i);
Next;
except
on e: EOleSysError do
Showmessage(e.message + #10 + inttostr(loword(e.errorcode)) + #10 + InttoStr(i));
else
raise;
end;
end;
← →
Goida © (2004-03-11 16:40) [8]Вот что я понял: это ошибка не из-за передачи неправильной. Я использую шаблон, написанный до меня (файл *.xls). Так вот, там есть макросы. По всей видимости, какой-то макрос глючит. Так что это уже мои собственные заморочки - разбираться.
Спасибо, за помощь.
← →
YurikGl © (2004-03-11 17:50) [9]Пользуй лучше ExcelApp.Range["A" + IntToStr(i),"A" + IntToStr(i)].
← →
Goida © (2004-03-11 18:05) [10]2YurikGl
Это не изменит результата. Да я, к тому же, и разобрался уже.
Спасибо.
← →
olookin © (2004-03-11 18:12) [11]вместо подстановки i: integer подставьте v: Variant
что то типа такого
for i:=...
v:=i;
Excelapp.range[...]:=v;
← →
Goida © (2004-03-11 18:22) [12]Странно, говорю что разобрался а писать все равно продолжают... Я в недоумении.
Спасибо всем, спасибо, спасибо...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.04 c