Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Новый участник


Сообщения: 26
Благодарности: 0

Профиль | Отправить PM | Цитировать


Dr.DG,
вот что мне удалось сделать на текущий момент времени:

Код: Выделить весь код
Private Sub CommandButton1_Click()
 
    Dim lNumber As Long
    Dim i As Long
    
    'Помещаем в переменную lNumber, с какого номера
    'должна начинаться нумерация бланков.
    lNumber = Me.TextBox1.Value
    
    'проверяем на согласие с условием
    If CheckBox1.Value = False Then
    
    'выводим сообщение
    MsgBox "Ошибка!" & " " & "Необходимо принять условие."
    Else
    
    'Делаем столько витков цикла, сколько бланков необходимо вывести на печать.
    For i = 1 To Me.TextBox2.Value Step 1
    
            Dim oDoc As Document
            Set oDoc = Application.Documents.Add("C:\Primer\BLANK.docm")
           
            'Помещаем в закладку "bN_1" данные из переменной lNumber.
            oDoc.Bookmarks("bN_1").Range.Text = lNumber + (i - 1)
            
            'Помещаем в закладку "bN_2" данные из переменной lNumber.
            oDoc.Bookmarks("bN_2").Range.Text = lNumber + (i - 1)
 
            'Помещаем в закладку "bN_3" данные из переменной lNumber.
            oDoc.Bookmarks("bN_3").Range.Text = lNumber + (i - 1)
 
            'Помещаем в закладку "bN_4" данные из переменной lNumber.
            oDoc.Bookmarks("bN_4").Range.Text = lNumber + (i - 1)
        
            'Распечатываем.
            Application.PrintOut Range:=wdPrintAllDocument, Item:= _
            wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
            ManualDuplexPrint:=True, Collate:=True, Background:=True, PrintToFile:= _
            False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
            PrintZoomPaperHeight:=0
        
    'Скрываем пользовательскую форму
    UserForm1.Hide
    
    Next i
    End If
End Sub
Здесь представлен работающий код, теперь уже с пользовательской формой (в которой TextBox1 и TextBox2 для ввода значений, CheckBox1 для принятия условия, а также кнопка CommandButton1, которая является основной).

По-прежнему есть некоторые моменты, которые хотелось бы улучшить:

1 - в документе "BLANK.docm", над которым и проводятся все действия, имеется 4 закладки на 4 одинаковых числа, которые начинаются с цифры "ноль". Например, 012222. Так вот сейчас я вынужден был перед каждой закладкой поместить цифру "ноль",а в поле TextBox1 пользовательской формы UserForm1 вбивать значение без цифры "ноль", например 12222.
Можно ли сделать так, чтобы в поле TextBox1 я вносил значение например 012222, в поле TextBox2 я вносил значение например 2 и при этом происходила правильная отработка "lNumber + (i - 1)" и на печать выводились документы с изменёнными номерами - 012222 в первом документе и 012223 во втором документе?

2 - во время выполнения кода открываются новые вкладки с документами, с изменёнными номерами. Как избавиться от этого, чтобы ничего не появлялось, а просто в очередь печати все документы складывались сразу и всё?


3 - необходима двусторонняя печать документа "BLANK.docm". Принтер обладает необходимой функцией.

Отправлено: 20:14, 29-09-2012 | #3