Показать сообщение отдельно
  #1  
Старый 30.05.2007, 10:37
Тимониссимо Тимониссимо вне форума
Прохожий
 
Регистрация: 10.04.2007
Сообщения: 15
Репутация: 10
По умолчанию Delphi->Сервис->Анализ данных->Регрессия 2

Что-то не открывается предыдущая тема...
Спрошу заново.
Написал в файле "прогнозирование.xls" макрос "макрос 2"

Код HTML:
Sub Макрос2() Application.Run "ATPVBAEN.XLA!Regress", ActiveSheet.Range("$A$5:$A$23"), _ ActiveSheet.Range("$B$5:$E$23"), False, False, , ActiveSheet.Range("$I$5") _ , True, False, False, False, , False End Sub

Теперь тока вопрос: как вызвать его из delphi, при этом задав еще и параметры?
Короче, я сделал так:

Код HTML:
emacros.Workbooks.Open(getcurrentdir+'\прогнозирование.xls',emptyparam,emptyparam, emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam, emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,0); emacros.Application.Run( 'Макрос2' , '$A$5:$A$23','$B$5:$E$23', False, False, emptyparam,'$I$5', True, False, False, False, emptyparam, False,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam, emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam, emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam);
Хотя в макросе на самом деле 12 параметров, Делфи ругался до тех пор, пока я не довел число параметров до 30.
После этого при запуске начал ругаться уже vba - типа несоответствие в параметрах. Ладно, попробовал теперь уже в vba переправить и довести число параметров до 30 - естественно не получилось. В довершении всего макрос перестал запускаться! выдает ошибку 10004 - "файл ATPVBAEN.XLA не найден!" Как не найден, на месте он! Просто из меню регрессия запускается, переписал макрос - та же фигня! Попробовал на другом компе - работает макрос... Excel что-ли переустановить...
Короче, подскажите, плз, как запустить этот макрос из delphi, как точно задать параметры???
какую книгу загружать: ATPVBAEN.XLA или ту, в которой я писал vba макрос? и что писать в первом параметре ATPVBAEN.XLA или "макрос2"?
Ответить с цитированием