1

Тема: Удаление не нужных элементов текста

Есть текст внешняя ссылка Как удалить одним махом элементы: Назад    Содержание    Дальше...

Отредактировано assent (13.10.2010 09:20:58)

2

Re: Удаление не нужных элементов текста

Не успел глянуть сегодня - но идея =>:
1) Поиск всех таблиц
2) Проверка элементов таблицы
2.1. (1;1)="Назад" с TRIM
2.2. (2;1)="Содержание"
если совпадает - убить таблицу и перейти к следующей

Делай, что можешь, и будь, что будет!

3

Re: Удаление не нужных элементов текста

А как найти все таблицы и проверить все их элементы? А дальше вообще не понятно. В моём случае всё удаляется после преобразования Назад    Содержание    Дальше... в текст. Как это сделать?

Отредактировано assent (13.10.2010 11:08:40)

4

Re: Удаление не нужных элементов текста

В вашем случае 3 варианта записей в таблице:
Содержание;Дальше...
Назад;Содержание;Дальше...
Назад;Содержание
я сделал обобщение и получил 2 условия - см ниже Left - т.к. выяснилось, что там в конце еще передается символ ? абзаца... Думаю, такой точности проверки достаточно
Поскольку в тексте есть и таблицы только в 1 столбец, то добавлено еще 1 условие

Sub TblDeleter()

Dim myTable As Table

    For Each myTable In ActiveDocument.Tables
        If myTable.Rows(1).Cells.Count > 1 Then
            If Left(myTable.Cell(1, 1).Range.Text, 5) = "Назад" And Left(myTable.Cell(1, 2).Range.Text, 5) = "Содер" _
                Or Left(myTable.Cell(1, 1).Range.Text, 5) = "Содер" And Left(myTable.Cell(1, 2).Range.Text, 5) = "Дальш" Then
                myTable.Delete
            End If
        End If
    Next myTable
End Sub

А вообще - вы, видимо не любопытны... ваша задача скорее рутинная из-за необходимости специфических условий - работа же с таблицами как таковыми минимальна - первые же 3-5 запросов в Yandex/Google дали бы вам ответ

От администратора: Пожалуйста, оформляйте код специальными тегами code.

Отредактировано admin (13.10.2010 14:53:09)

Делай, что можешь, и будь, что будет!

5

Re: Удаление не нужных элементов текста

А вот это:

Sub TblDeleter()

Dim myTable As Table

    For Each myTable In ActiveDocument.Tables
        If myTable.Rows(1).Cells.Count > 1 Then
            If Left(myTable.Cell(1, 1).Range.Text, 5) = "Назад" And Left(myTable.Cell(1, 2).Range.Text, 5) = "Содер" _
                Or Left(myTable.Cell(1, 1).Range.Text, 5) = "Содер" And Left(myTable.Cell(1, 2).Range.Text, 5) = "Дальш" Then
                myTable.Delete
            End If
        End If
    Next myTable
End Sub

Что это такое? Макрос?

Отредактировано admin (13.10.2010 14:51:47)

6

Re: Удаление не нужных элементов текста

Да, это макрос - по крайней мере мне не известно как задать 2 условия в поиске и есть ли спец. символ поиска обозначающий таблицы.

Вручную это делается так (у меня англ версия, поэтому привожу клав. комбин:
1) отжать клавишу NumLock
2) Ctrl+G -> открывается диалог GoTo - выбираете там таблицу и жмете Next(следующ).
3) закрываете диалог
4) Alt + Num5 - выделится вся таблица (если забыли 1 - впечатаются ♣ smile )
5) Shift+Del - просто Del очистит таблицу
6) Ctrl+Alt+Y - переход на следующую таблицу - это вообще полезная комбинашка чтобы не вызывать повторно диалог поиска...

Отредактировано VBA-addict (13.10.2010 14:37:21)

Делай, что можешь, и будь, что будет!

7

Re: Удаление не нужных элементов текста

А Num5 что это? Если Alt+цифра5 то у меня выскакивает Вставка рисунка.

Отредактировано assent (13.10.2010 16:48:35)

8

Re: Удаление не нужных элементов текста

Num5 это кнопка 5 на цифровом блоке - самая правая часть клавиатуры
Иллюстрация 1 smile
N / * -
7 8 9 +
4 5 6 +
1 2 3 E
0 0 . E

Видимо, вы меняли назначение клавиш по умолчанию - легко проверить
Меню Tools\Customise\Keyboard - встать на поле New Shortcut Key и нажать вашу комбинацию
у меня на <Alt +Num5> показывает Currently assigned to: TableSelectTable

Если у вас иное - выберите слева в поле Categories - Table, а в поле Commands - TableSelectTable - и назначьте свои клавиши - тогда их и применяйте....

Делай, что можешь, и будь, что будет!

9

Re: Удаление не нужных элементов текста

Относительно этого:
Иллюстрация 1 smile
N / * -
7 8 9 +
4 5 6 +
1 2 3 E
0 0 . E
то у меня почти также, за исключением последней строки:0DelE По поводу остального: не дружу с аглицким, поэтому не могу понять где искать эти настройки

Отредактировано assent (13.10.2010 19:06:50)

10

Re: Удаление не нужных элементов текста

Сервис\Настройка\Сочетания клавиш -> Категории:Таблица ->Команды:TableSelectTable

Ну сообразите же сами хоть чуть-чуть...

З.Ы.

assent пишет:

то у меня почти также, за исключением последней строки:0DelE

big_smile  а вы чуть выше надписи Del на этой кнопке смотреть пробовали?  big_smile

Отредактировано VBA-addict (13.10.2010 19:41:01)

Делай, что можешь, и будь, что будет!

11

Re: Удаление не нужных элементов текста

Брат VBA-addict! Относительно 6 поста: я во всём разобрался! Но по-моему я делаю быстрей. В документе я нажимаю Ctrl и вращаю колесо мыша вперёд и масштаб просмотра уменьшаю до 30%. И в ручную! Думал есть какой безмакросный способ побыстрее.

12

Re: Удаление не нужных элементов текста

Вопрос в том - а в чем макрособоязнь-то? У меня ваш документ макрос прошерстил где-то сек за 10...
Если вы так круты, что можете быстрее вручную - снимаю шляпу wink

В общем, получилось так, что мы тут дольше топик пишем, чем можно было бы запустить макрос со всеми объяснениями как это делать smile

Отредактировано VBA-addict (13.10.2010 19:46:02)

Делай, что можешь, и будь, что будет!

13

Re: Удаление не нужных элементов текста

Не записываются у меня макросы. А как включить в настройках - не знаю.

14

Re: Удаление не нужных элементов текста

VBA-addict
Спасибо за макрос! Еще желательно было бы иметь макрос для удаления любых таблиц в документе. Что надо изменить?

Отредактировано tigr (14.10.2010 09:27:24)

15

Re: Удаление не нужных элементов текста

assent пишет:

Не записываются у меня макросы. А как включить в настройках - не знаю.

Призыв: Ну будьте же любопытны и вам воздастся сторицей smile
с этого же сайта из раздела >> Форум сайта » Часто задаваемые вопросы » О макросах :
Создание макроса из готового кода http://wordexpert.ru/page/sozdanie-makr … ovogo-koda
Автоматическая запись макроса http://wordexpert.ru/page/avtomatichesk … is-makrosa
Как назначить сочетания клавиш для макросов http://wordexpert.ru/page/kak-naznachit … a-makrosov
с других сайтов:
Word 2003/2007. Народные советы внешняя ссылка
Знакомство с макросами: руководство внешняя ссылка


tigr пишет:

VBA-addict
Спасибо за макрос! Еще желательно было бы иметь макрос для удаления любых таблиц в документе. Что надо изменить?

убрать условия и оставить только удаления...

Sub TblDelALL()

Dim myTable As Table

    For Each myTable In ActiveDocument.Tables
                myTable.Delete
    Next myTable

End Sub

>> аФФтору сайта/форума
может таки добавить - в Часто задаваемые вопросы - как включить макросы smile - что-то типа - "Мой первый макрос" + настройки безопасности... в формате "для чайников"...

Делай, что можешь, и будь, что будет!

16

Re: Удаление не нужных элементов текста

Ура! Заработало!

17

Re: Удаление не нужных элементов текста

VBA-addict пишет:

>> аФФтору сайта/форума
может таки добавить - в Часто задаваемые вопросы - как включить макросы smile - что-то типа - "Мой первый макрос" + настройки безопасности... в формате "для чайников"...

Так ведь есть уже. Просто люди не всегда хотят потрудиться и поискать. По себе сужу  smile  Но, за предложение спасибо.

18

Re: Удаление не нужных элементов текста

VBA-addict
Спасибо за макрос для удаления любых таблиц в документе. Аналогичный макрос для удаления рисунков можно?

19

Re: Удаление не нужных элементов текста

tigr, в отличии от таблиц, с графикой в Word не все так однозначно. Графические объекты бывают разных типов.
Я рекомендую вам ознакомиться с подробнейшей статьей Марка Розенберга Обработка графики в Microsoft Word средствами VBA.