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

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

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.07.2009, 12:33   #1
k1r1ch
ACM!
Форумчанин
 
Аватар для k1r1ch
 
Регистрация: 19.06.2009
Сообщений: 382
Вопрос Как напечатать определенную страницу

Вопрос по названию темы. В интернете нашел sheets[x], но так печатается только уменьшенная версия таблицы в углу листа, а надо на весь лист.
k1r1ch вне форума Ответить с цитированием
Старый 10.07.2009, 12:37   #2
pivas
Форумчанин
 
Регистрация: 03.04.2009
Сообщений: 412
По умолчанию

У Вас уже была подобная проблема и Вы её успешно решили установить 100% от натуральной величины).
pivas вне форума Ответить с цитированием
Старый 10.07.2009, 12:47   #3
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Если я правильно понял, то требуется напечатать определенный диапазон на всю страницу. Если так, то можно воспользоваться следующим кодом:
Код:
Sub PrintAr()
    With ActiveSheet.PageSetup
        .PrintArea = "$A$10:$E$30"
        .FitToPagesWide = 1
        .FitToPagesTall = 1
    End With
End Sub
После этого, диапазон "A10:E30" будет напечатан на всю страницу.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 10.07.2009, 13:29   #4
k1r1ch
ACM!
Форумчанин
 
Аватар для k1r1ch
 
Регистрация: 19.06.2009
Сообщений: 382
По умолчанию

2pivas: Действительно, была похожая проблема. Теперь при печати через Excel таблица занимает весь лист, а через мою программу - от силы 1/8 листа в углу.
2SAS888: Нет, нужно следующее: в документе 2 страницы. Напечатать надо именно 2-ую страницу, но на весь лист.
k1r1ch вне форума Ответить с цитированием
Старый 10.07.2009, 13:46   #5
pivas
Форумчанин
 
Регистрация: 03.04.2009
Сообщений: 412
По умолчанию

Значит проблема в программе. Как документ выводится печать?
pivas вне форума Ответить с цитированием
Старый 10.07.2009, 14:20   #6
k1r1ch
ACM!
Форумчанин
 
Аватар для k1r1ch
 
Регистрация: 19.06.2009
Сообщений: 382
По умолчанию

По нажатию одной кнопки печатается первый лист:
Код:
procedure MainWork;
var i : Integer;
begin
  DateTime := Date;                             
  Excel := CreateOleObject('Excel.Application');   
  Excel.Workbooks.Open[SetPath];                   
  Excel.DisplayAlerts := False;                   
  Excel.Visible := False;                          
  For i := 1 to 5 do   
    begin
    DateTime := IncDay(DateTime);
    HolidayTest;
    DecodeDate(DateTime, Year, Month, Day); 
    MonthToWord;
    Excel.Range['AD5'] := IntToStr(Day);        
    Excel.Range['AI5'] := MonthWord;           
    DateTime := IncDay(DateTime);
    HolidayTest;
    DecodeDate(DateTime, Year, Month, Day);
    MonthToWord;
    Excel.Range['DR5'] := IntToStr(Day);
    Excel.Range['DW5'] := MonthWord;
    Excel.ActiveSheet.PrintOut;               
    end;                                     
  Excel.ActiveWorkbook.Close;                
  Excel.Application.Quit;                   
end;
И он печатается нормально. А вот по нажатию другой кнопки должен печататься 2-ой лист.
Причем я изменил только строчку Excel.ActiveSheet.PrintOut на Excel.Sheets[2].PrintOut и убрал часть кода, которая подставляла дату в ячейки.
Вот код второй кнопки:
Код:
procedure TForm1.MainBackClick(Sender: TObject);
var i : Integer;
begin
  Ini := TIniFile.Create(extractfilepath(Application.ExeName)+'Settings.ini');
  SetPath := Ini.ReadString('PathToSheet', 'SetPath',
  'C:\Program Files\SAPL') + '\Т005НТ.xls';
  Ini.Free;
  Excel := CreateOleObject('Excel.Application');
  Excel.Workbooks.Open[SetPath];
  Excel.DisplayAlerts := False;
  Excel.Visible := False;
  For i := 1 to 5 do Excel.Sheets[2].PrintOut;
  Excel.ActiveWorkbook.Close;               
  Excel.Application.Quit;                    
end;
k1r1ch вне форума Ответить с цитированием
Старый 10.07.2009, 14:39   #7
pivas
Форумчанин
 
Регистрация: 03.04.2009
Сообщений: 412
По умолчанию

Я не параноик, но отпишитесь, что у Вас написано в параметрах страницы. Меня интересуют пункты установить...% от натуральной величины и значение левого поля.
pivas вне форума Ответить с цитированием
Старый 10.07.2009, 15:51   #8
k1r1ch
ACM!
Форумчанин
 
Аватар для k1r1ch
 
Регистрация: 19.06.2009
Сообщений: 382
По умолчанию

Левое поле - 1, разместить не более чем на 1 стр в ширину и 1 стр в высоту.
k1r1ch вне форума Ответить с цитированием
Старый 10.07.2009, 16:18   #9
pivas
Форумчанин
 
Регистрация: 03.04.2009
Сообщений: 412
По умолчанию

Прикрепите файлик.
pivas вне форума Ответить с цитированием
Старый 10.07.2009, 17:11   #10
k1r1ch
ACM!
Форумчанин
 
Аватар для k1r1ch
 
Регистрация: 19.06.2009
Сообщений: 382
По умолчанию

Вот файл:
Т005НТ.rar
k1r1ch вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как напечатать символ после InlineShape? viter.alex Microsoft Office Word 5 07.03.2009 00:45
как в шаблоне Word напечатать данные из Exel Ирина Штефан Microsoft Office Excel 4 21.01.2009 01:23
Как в DBgrid выделить определенную ячейку жирным? Dux БД в Delphi 6 10.08.2008 03:42
Как из dbf перенести все записи в определенную позицию? Askat БД в Delphi 3 03.07.2007 12:13