Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.28;
Скачать: CL | DM;

Вниз

Ошибка из 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.044 c
9-1060377275
Norlin
2003-08-09 01:14
2004.03.28
вопрос по построению игр: здесь есть игровые художники?


8-1069692319
g-l-u-k
2003-11-24 19:45
2004.03.28
Bass.dll и M3U


6-1073482605
XED
2004-01-07 16:36
2004.03.28
Комнонеты анологичные TServerSocket,TClientSocket??


14-1077866459
Карелин Артем
2004-02-27 10:20
2004.03.28
Где взять инфу по репликации баз?


14-1078053776
hp_deskjet_3650
2004-02-29 14:22
2004.03.28
как устранить проблему с картриджем?