Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
11-1057518741
nice
2003-07-06 23:12
2004.03.28
JPEG из ресурса


3-1077696474
ruslanyd
2004-02-25 11:07
2004.03.28
dsql и процедуры в IB


3-1077967929
Kryukov Andrew
2004-02-28 14:32
2004.03.28
Поля в Table


1-1078894491
Ann_
2004-03-10 07:54
2004.03.28
Поток


7-1073319421
iusupp
2004-01-05 19:17
2004.03.28
Проблема установки ZIP Omega с SCSI контролером...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский