![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - Замена шифра в тексте и печать большого количества документов |
|
|
VBA - Замена шифра в тексте и печать большого количества документов
|
Новый участник Сообщения: 26 |
Имеется документ 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
|
Профиль | Отправить PM | Цитировать по пункту 1 мне вот что подсказали
'отключение крестика на UserForm1 Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) Cancel = -1 End Sub А вот как сделал по пункту 2 |
Отправлено: 15:04, 09-10-2012 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Установка большого количества .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 |
|