Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Увеличение размера при выводе на принтер Excel-файла [D7, WinXP]


fishka ©   (2007-03-29 09:33:00) 

В открытом Excel, полученном путем копирования из шаблона, заменяются значения ячеек. Файл не закрывается и заново не создается. Из Excel-я нажимает пользователь кнопку вывода на принтер. И так много-много раз. Если открыть окно заданий принтера, то видно, что размер выводимой информации увеличивается с каждым новым выводом на печать.
Если просто выводить один и тот же файл на печать из Excel-я (без программы), то размер выводимой информации не увеличивается.

У меня что-то некорректно в программе при замене ячеек или создании второй половины листа (получаемой из первой).

Помогите советом.
Вот кусок кода:

MSExcel_pay.Workbooks[1].WorkSheets[1].Name:='ИМя ЛИСТА'; MSExcel_pay.WindowState:=-4143;
MSExcel_pay.range['A1'].Select;
MSExcel_pay.ActiveCell.FormulaR1C1:='6832746826';
//далее заполнение всех ячеек
........................
//создание копии
MSExcel_pay.Range['A:D'].Select;
MSExcel_pay.Selection.Copy;
MSExcel_pay.Range['F:I'].Select;
MSExcel_pay.Selection.PasteSpecial(Paste:=8);
MSExcel_pay.ActiveSheet.Paste;
MSExcel_pay.Cells.Select;
MSExcel_pay.Application.CutCopyMode:=False;
MSExcel_pay.Visible:=True;


fishka   (2007-03-29 10:02:00) [1]

Ограничение выделенной области не помогло. Идёт увеличение размера при выводе на принтер.


SLP   (2007-03-29 09:52:00) [2]


> fishka   (29.03.07 09:33)



> MSExcel_pay.Range['A:D'].Select;

Попробуйте ограничить выделенную область так:

WorkBook, Sheet, Range, Cell1, Cell2: Variant;

 BeginCol:=1;
 BeginRow:=1;
 EndCol:=4;
 EndRow:=20; //через переменную
 Cell1 := WorkBook.WorkSheets[1].Cells[BeginRow, BeginCol];
 Cell2 := WorkBook.WorkSheets[1].Cells[EndRow,EndCol];  
 Range := WorkBook.WorkSheets[1].Range[Cell1, Cell2];


Наверх

Титульная страница Поиск, карта сайта Написать письмо