Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - Замена шифра в тексте и печать большого количества документов

Ответить
Настройки темы
VBA - Замена шифра в тексте и печать большого количества документов

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


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


Конфигурация

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


Имеется документ MS Word, который состоит из двух страниц. На первой странице документа в четырех местах имеется шифр вида "x" и этот шифр необходимо менять в арифметической последовательности "x+1" (то есть сначала в четырёх местах написан шифр "x", потом шифр меняется и во всех четырёх местах напсиан шифр "x+1" и так далее, до определённого значения), а остальной текст оставлять без изменений и при этом распечатывать каждый раз при изменении значения в автоматическом режиме, используя двустороннюю печать.

Используя возможности VB я добился следующего:
1 - при открытии документа у меня появляется форма, в которую я ввожу начальное значение шифра вида "x", потом ввожу общее число необходимых мне подстановок "y"
2 - кнопка "подстановка" меняет шифр вида "x" на введённое значение в создаваемом документе в необходимых мне четырёх местах (это я сделал при помощи закладок). На текущий момент времени я могу создавать только один документ с введённым форму значением.
3 - кнопка "отмена" закрывает форму, потом документ и затем закрывает Word

Вот как это выглядит на текущий момент времени
Код: Выделить весь код
Private Sub CommandButton1_Click()
If CheckBox1.Value = False Then
    MsgBox "Ошибка!" & " " & "Необходимо принять условие." 'выводим сообщение
    Else
 Dim oDoc As Document
 Set oDoc = Application.Documents.Add("C:\Template.dotm")
 oDoc.Bookmarks("bN_1").Range.Text = txtBlank.Value
 oDoc.Bookmarks("bN_2").Range.Text = txtBlank.Value
 oDoc.Bookmarks("bN_3").Range.Text = txtBlank.Value
 UserForm1.Hide
 oDoc.Activate
End If
End Sub
 
Private Sub CommandButton2_Click()
'Выход из формы и закрытие окна документа при нажатии кнопки "Отменить"
On Error GoTo ErrLabel
Unload Me    'Закрываем форму
ActiveDocument.Close  'Закрываем текущий документ
ErrLabel:
Application.Quit    'закрываем Word
End Sub
 
Private Sub txtBlank_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'действия с полем номер бланка
With Me.txtBlank
If Not IsNumeric(.Text) Or Len(.Text) <> 6 Then 'если в поле "Бланк" данные не цифры и меньше или больше 6, то
MsgBox "Ошибка!" & " " & "Введите 6 цифр бланка." 'выводим сообщение
Cancel = True  'возвращаемся к полю
.Text = ""  'очищаем поле
.SetFocus
End If
End With
End Sub
 
Private Sub txtKolvo_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'действия с полем общее количество бланков
With Me.txtKolvo
If Not IsNumeric(.Text) Or Len(.Text) <> 2 Then 'если в поле "общее количество бланков" данные не цифры и общее число цифр меньше или больше 2, то
MsgBox "Ошибка!" & " " & "Вводить только число, состоящее из 2 цифр." 'выводим сообщение
Cancel = True  'возвращаемся к полю
.Text = ""  'очищаем поле
.SetFocus
End If
End With
End Sub
вот нашёл код, он мне в принципе должен помочь, но я пока не могу его изменить под себя...
здесь приводится пример как на странице документа выставляется каждый раз новое число с одного до другого и каждый раз при этом документ распечатывается.
я надеюсь правильно понял пример

Код: Выделить весь код
Sub Печать_кучи_документов_с_номерами()
 
   ' В документе там где должен быть номер должна стоять 239366 '        
   For Номер_документа = 239366+1 To 239366+100        
        With Selection.Find
            .Text = Trim(Str(Номер_документа - 1))
            .Replacement.Text = Trim(Str(Номер_документа))
            .Forward = True
            .Wrap = wdFindContinue
        End With
       
        Selection.Find.Execute Replace:=wdReplaceAll
        
        Application.PrintOut Range:=wdPrintAllDocument, Item:= _
            wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
            ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
            False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
            PrintZoomPaperHeight:=0
   Next                    
End Sub
и ещё нашел вот такую статью
она меня безумно напугала из-за огромного кода на казалось бы простую операцию - установка дуплекса на печать документа

вообщем, как видите, пока что в голове бардак... Требуется помощь для наведения порядка в голове и мыслях.

Отправлено: 22:11, 12-09-2012

 

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


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

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


по пункту 1 мне вот что подсказали
Код: Выделить весь код
'отключение крестика на UserForm1
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Cancel = -1
End Sub
но хотелось бы решить данный вопрос используя пример, представленный в файле Forma


А вот как сделал по пункту 2
Код: Выделить весь код
 
    'Распечатываем. Ждём окончания процесса печати. 
    'А то не будет распечатываться ничего, сразу закроется всё.
     ActiveDocument.PrintOut Background:=False
        
    'закрываем приложение Word без сохранения изменений и без возможности выбора
    Application.Quit SaveChanges:=wdDoNotSaveChanges

Отправлено: 15:04, 09-10-2012 | #21



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - Замена шифра в тексте и печать большого количества документов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Установка большого количества .exe LEXYS AutoIt 1 23-02-2012 09:44
CMD/BAT - Подстановка большого количества параметров. Zeneth Скриптовые языки администрирования Windows 13 30-12-2011 13:16
Разное - Поиск количества строк в тексте DaRiYs Программирование и базы данных 2 15-03-2010 16:24
Разное - IE зависает при открытии большого количества вкладок multy Microsoft Windows Vista 2 11-10-2007 14:25
замена символа в тексте (PHP)   Casufi Вебмастеру 3 11-04-2003 11:07




 
Переход