Страницы: 1
RSS
макрос "вывод на печать"
 
в таблице есть заказы, каждый заказ на своём листе. чтобы напечатать заказ есть такой макрос:  
Sub печать()  
x = InputBox("введите номер страницы", "печать")  
If x = "" Then GoTo ennds  
If x <> "0" Then ExecuteExcel4Macro "PRINT(2," & x & "," & x & ",1,,,,,,,,2,,,TRUE,,FALSE)"  
ennds:  
End Sub  
 
вводим номер листа на котором расположен заказ, и печатаем его, но проблема в том, что некоторые заказы расположены на нескольких страницах. как исправить этот макрос, чтобы он печатал несколько листов. например при вводе 23-25 печатал с 23 по 25 страницы, а при вводе 23 только 23. чтото типа если есть "-", то до "-" это Х, а после У и потом  ...."PRINT(2," & Х & "," & У & ".........
 
Прилепите файл, может кто и поможет... У вас старая таблица, на ней еще макрос от 4-го Excela запускается. Раритет. Может лучше переписать на современный лад.    
У вас какой Excel?
 
а чем должно от ctrl+P должно отличаться?
 
Ну судя по всему в этой старинной разработке заказов много, а печатать нужно не все, я уже даже и не вспомню все параметры команды PRINT это же 10 лет назад было: "PRINT(2," & x & "," & x & ",1,,,,,,,,2,,,TRUE,,FALSE)" )))
 
{quote}{login=McCinly}{date=08.02.2010 07:12}{thema=}{post}Прилепите файл, может кто и поможет... У вас старая таблица, на ней еще макрос от 4-го Excela запускается. Раритет. Может лучше переписать на современный лад.    
У вас какой Excel?{/post}{/quote}  
Господа, макрос записан макро рекордером в 2007-м экселе!!! сначала напечатал страницу 5, потом 15, посмотрел где меняются цыфры и поставил туда "Х"...    
вопрос сводится к текстовым функциям в коих я совсем не силен: как при введенном "***-***" выделить число до "-" и после "-"???
 
Попробуйте так, будет печатать от первого числа до последнего, разделитель обязательно "-"  
 
Sub печать()  
x = InputBox("введите номер страницы", "печать")  
If x = "" Then GoTo ennds  
arr = Split(x, "-")  
For y = Val(arr(LBound(arr))) To Val(arr(UBound(arr)))  
If y <> "0" Then Sheets(y).PrintOut  
Next  
ennds:  
End Sub
 
Лучше так:  
Sub печать()  
x = InputBox("введите номер страницы", "печать")  
If x = "" Then GoTo ennds  
arr = Split(x, "-")  
For y = Fix(arr(LBound(arr))) To Fix(arr(UBound(arr)))  
If y <> "0" And y <= Sheets.Count Then Sheets(y).PrintOut  
Next  
ennds:  
End Sub
 
спасибо
 
Не подскажете, как адаптировать макрос, чтобы он печатал заданные страницы, например, 3,6 и 9? Если можно, то для openoffice.
Страницы: 1
Читают тему
Наверх