Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2010, 16:44   #1
ара
Форумчанин
 
Регистрация: 11.04.2007
Сообщений: 106
По умолчанию печать листов excel

Доброго времени суток!
изобразил вот такой код для печати страницы Excel:

Код:
procedure TForm1.Button1Click(Sender: TObject);
var MsExcel: Variant;

begin
 MsExcel := CreateOleObject('Excel.Application' );
 MsExcel.Workbooks.Open['D:\март.xlsx'];
 MsExcel.ActiveSheet.PrintOut;
MsExcel.ActiveWorkbook.Close;
MsExcel.Application.Quit;
end;

end.
Принтер не подключен, в результате чего выплывает окно с предложением сохранить файл. Если сохраняешь, то все работает дальше. Есле нажимаешь на ОТМЕНА, то сообщает об ошибке. Подскажите, плиз, как ее убрать?

Последний раз редактировалось Stilet; 07.04.2010 в 08:40.
ара вне форума Ответить с цитированием
Старый 06.04.2010, 18:41   #2
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

MsExcel.DisplayAlerts:=false;
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 06.04.2010, 21:10   #3
ара
Форумчанин
 
Регистрация: 11.04.2007
Сообщений: 106
По умолчанию

Не получается! DisplayAlerts, помоему, бокирует запросы Excel. А у меня выпадает ошибка какого-то метода. Что еще можно попробывать?
ара вне форума Ответить с цитированием
Старый 07.04.2010, 00:12   #4
Tirendus
Форумчанин
 
Аватар для Tirendus
 
Регистрация: 20.03.2009
Сообщений: 272
По умолчанию

Свойство DisplayAlerts не блокирует запросы, оно отключает окна с уведомлениями типа "Вы уверены, что хотите закрыть этот документ, не сохраняя его?". Если выпадает какая-то ошибка какого-то метода (точнее сказать не могу), и появляться она стала только после того, как вы применили DisplayAlerts, то именно это свойство вы каким-то образом указали неверно.

Код:
procedure TForm1.Button1Click(Sender: TObject);
var MsExcel: Variant;

begin
MsExcel := CreateOleObject('Excel.Application' );
MsExcel.Workbooks.Open['D:\март.xlsx'];
MsExcel.DisplayAlerts := False;
MsExcel.ActiveSheet.PrintOut;
MsExcel.ActiveWorkbook.Close;
MsExcel.Application.Quit;
end;

end.
По идее, вот так должно работать. И попробуйте все-таки этот код при подключенном принтере.
Tirendus вне форума Ответить с цитированием
Старый 07.04.2010, 08:07   #5
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

А не проще показать эту ошибку тут. Ну, хоть сделал бы снимок экрана, что ли! А то ломайте голову, что там у него происходит...
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 07.04.2010, 08:14   #6
ара
Форумчанин
 
Регистрация: 11.04.2007
Сообщений: 106
По умолчанию

Так то все работает. Но меня интересует ситуация, когда принтер не подключен. Вылезает окно с предложением сохранить файл который нужно напечатать. если его сохраняешь, то вопросов нет, все нормально. Но если пользователь нажмет ОТМЕНА, то выдает ошибку:"Метод PrintOut" из класса Worksheet завершен неверно". Как сделать так чтобы при таких действиях корректно все завершалось????
ара вне форума Ответить с цитированием
Старый 07.04.2010, 08:17   #7
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Еще уточни с каким Экселем работаешь? Используй обработку исключений, может поможет...
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 07.04.2010, 08:31   #8
ара
Форумчанин
 
Регистрация: 11.04.2007
Сообщений: 106
По умолчанию

эксель 2007, подскажи про обработку исключений. Еще с этим не сталкивался!??
ара вне форума Ответить с цитированием
Старый 07.04.2010, 08:34   #9
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

try
.........
except
........
end;
Обработка исключительных ситуаций.
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 07.04.2010, 09:29   #10
ара
Форумчанин
 
Регистрация: 11.04.2007
Сообщений: 106
По умолчанию

Написал вот так:
procedure TForm1.Button1Click(Sender: TObject);
var MsExcel: Variant;

begin
MsExcel := CreateOleObject('Excel.Application' );
MsExcel.Workbooks.Open['D:\март.xlsx'];
MsExcel.DisplayAlerts := False;
try
MsExcel.ActiveSheet.PrintOut;
except
MsExcel.ActiveWorkbook.Close;
MsExcel.Application.Quit;
end;
end;



end.
Таже ошибка
ара вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно как-то автоматизировать печать выборочных листов? ZSFoS Microsoft Office Excel 7 12.03.2010 10:25
Сборная печать с разный листов shafer Microsoft Office Excel 10 21.05.2008 22:06
печать нескольких листов checkbox Microsoft Office Excel 2 16.01.2008 00:50
печать в excel HANK Microsoft Office Excel 1 04.08.2007 07:48