Обезличивание отчетов
Обезличивание отчетов
Для быстрого обезличивания отчетов или иных массивов данных для стирания, замены, и/или удаления определенных данных, можно использовать макрос – как встроенных, для средств MS Office, так и написанных специально для нужд компании.
Задача: Заменить число на Х
Для этого можно воспользоваться диалоговым окном Найти и заменить («Ctrl+H») либо написав специальный макрос. Если хотите сделать это с помощью окна Найти и заменить, то откройте это окно («Ctrl+H») и предварительно очистите все поля, уберите все флажки с опций:
Далее, введите в поле Найти такое выражение:
и нажмите (если нужно) сочетание клавиш (в поле Заменить):
«Ctrl+B» | «Ctrl+U» | «Ctrl+I»
Полужирный | Подчеркнутый | Курсив
и нажмите кнопку Заменить все.
Цифры в тексте будут оформлены в соответствии с настройками.
UPD. К примеру, если будет необходимо удалить не все числа в документе, а выборочный диапазон, или тип данных (например, только тыс.руб. – обезличить 6-тизначные числа: ХХХ ХХХ,ХХ руб., и т.п.), можно настроить подобный массив под выборку:
Задача: обезличить табл. на предмет наличия млн. и млрд.
Проверяем правильность введенных данных, нажимаем Найти Далее (Find next):
И так далее, по вашему запросу.
Далее, если необходимо заменить текст определенного образца,
Задача: удалить текст из заданного диапазона во всем документе
Функция работает после написания макроса.
Макрос расположен в Visual Basic, чтобы отрыть Visual Basic нужно нажать Alt+F11, ищите в списке файл в котором работаете, дальше через добавления модуля нужно ввести текст (команды) макроса. (просто копируете и вставляете). Сохраняете. И дальше в строке икселя появляется новая функция Visual Basic.
Копируете данный текст в открывшееся окно, редактируете запрос и запускаете макрос:
Set bm = ActiveDocument.Bookmarks
Application.ScreenUpdating = False
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.MoveLeft Unit:=wdCharacter, Count:=1
If Selection.Find.Found = False Then
Application.ScreenUpdating = True
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.MoveRight Unit:=wdCharacter, Count:=1
Set rng = ActiveDocument.Range(Start:=bm("bm1").Start, End:=bm("bm2").End)
Данный макрос (приведен выше) ищет слово по поиску в документе:
.Text = "Срок участия"
Далее после нахождения совпадения задает рамки удаления ОТ определенного заданного символа и ДО определенного заданного символа от получившегося совпадения
.Text = "("
.Text = ")"
Итог: в документе будет удалены все совпадения любой длины, коррелирующие с сочетанием:
(Срок участия……)
Выделив подлежащий удалению элемент текста в документе, вы можете настроить необходимое поведение макроса на удаление заданных значений (необходимые поля подсвечены выше)