PDA

Показать полную графическую версию : [решено] Как удалить все строки в Word 2010 по результатам работы "Поиск" и "Заменить"?


Страниц : [1] 2

flev45
15-05-2019, 10:55
Как удалить все строки в Word 2010 по результатам работы "Поиск" и "Заменить"?
Есть текст, часть которого прилагаю. 2 первые строки получил вручную.
Остальные строки текста (20-30 страниц), желательно получить используя функции "Поиск" и "Заменить".
Например, как удалить все строки с "жирным" текстом, в начале которого стоит "точка"?
Или отыскал все строки с "Laden der Transaktionsdetails". Как их все удалить, не вручную?
Спасибо.

Iska
15-05-2019, 13:28
1а. «2 первые строки» у Вас выглядят совсем не так, как Вы думаете. Включите отображение непечатных символов (в том числе — скрытого текста) и увидите:
https://i.imgur.com/TyBQVW7.png
1б. Правильнее говорить не «строка», а «абзац».

2а. В начале абзаца не «стоит "точка"», а находится метка многоуровневого списка:
https://i.imgur.com/nd0q4AI.png
2б. Ничего «удалять» не нужно. В Вашем случае досточно тупо скопировать формат с любой отличной строки и протянуть его на весь текст:
https://i.imgur.com/vox1xSO.png

gifv не поддерживается, потому просто ссылка на анимацию: https://i.imgur.com/27Reecw.gifv


3. Или отыскал все строки с "Laden der Transaktionsdetails". Как их все удалить, не вручную? »
Например, так:
https://i.imgur.com/OikmPUA.png
Option Explicit

Sub Sample()
Dim objParagraph As Paragraph

For Each objParagraph In ThisDocument.Content.Paragraphs
If InStr(1, objParagraph.Range.Text, "Laden der Transaktionsdetails", vbTextCompare) > 0 Then
objParagraph.Range.Delete
End If
Next objParagraph
End Sub

Vadikan
15-05-2019, 19:13
flev45,
Количество ваших тем, у которых ноги растут из одной задачи, зашкаливает. Это не запрещено правилами, но конкретная задача (http://www.outsidethebox.ms/13148/#_Toc314611149) при этом толком не озвучена. А если она в том, чтобы экспортировать список транзакций PayPal в удобный для дальнейшего анализа вид, то есть экспорт в CSV (https://business.paypal.com/merchantdata/consumerHome).

Date,"Time","TimeZone","Name","Type","Status","Currency","Amount","Receipt ID","Balance"

https://i.imgur.com/fKLPJUy.png

Iska
15-05-2019, 19:38
Vadikan, видимо, проблема была ещё и в том, что среди отвечающих должен был найтись человек, который пользуется PayPal.

flev45
16-05-2019, 12:01
Цитата flev45:
Или отыскал все строки с "Laden der Transaktionsdetails". Как их все удалить, не вручную? »
Например, так:
Option Explicit
Sub Sample()
Dim objParagraph As Paragraph
For Each objParagraph In ThisDocument.Content.Paragraphs
If InStr(1, objParagraph.Range.Text, "Laden der Transaktionsdetails", vbTextCompare) > 0 Then
objParagraph.Range.Delete
End If
Next objParagraph
End Sub »
Уважаемый, ваш макрос ничего не меняет.
Установил все разрешения, записал макрос, запустил по "выплнить", никаких сообщений.
Посмотрел по "Изменить" - Ваш макрос на месте...
Но 2 строки с "Laden der Transaktionsdetails" как были, так и остались.

Iska
16-05-2019, 12:15
flev45, покажите, куда Вы его записали. Меня интересует обрезанная левая часть:
https://i.imgur.com/7hgMOMg.png

Уважаемый, ваш макрос ничего не меняет. »
У меня — удаляет искомые абзацы. Я имею привычку проверять выкладываемый код. Если я его не проверяю — я так и указываю: «(не проверялось)».

flev45
16-05-2019, 12:28
Как эту левую часть вызвать? У меня её нет...

flev45
16-05-2019, 12:33
Нажал "Отладка", появилась 1-я строка макроса на выполнение... это пошаговый режим?

Vadikan
16-05-2019, 12:33
Ctrl+R

flev45
16-05-2019, 12:36
Сделал

Vadikan
16-05-2019, 12:40
flev45, теперь сравните с картинкой в посте 2 под последним спойлером.

Iska
16-05-2019, 12:49
flev45, удалите модуль NewMacros из шаблона Normal.dotm, скопируйте вышеуказанный код (http://forum.oszone.net/post-2871810.html#post2871810) в буфер обмена и затем вставьте его в модуль ThisDocument документа «Apr 28 2019 eBay.docx». Либо поменяйте в коде объект «ThisDocument» на «ActiveDocument» и сделайте перед выполнением кода искомый документ активным.

flev45
16-05-2019, 12:52
flev45, теперь сравните с картинкой в посте 2 под последним спойлером. »
Убираю "Normal", макрос пропадает...
Что ж я не так сделал?

...flev45, удалите модуль NewMacros из шаблона Normal.dotm, скопируйте вышеуказанный код в буфер обмена и затем вставьте его в модуль ThisDocument документа «Apr 28 2019 eBay.docx». Либо поменяйте в коде объект «ThisDocument» на «ActiveDocument» и сделайте перед выполнением кода искомый документ активным. »
Дайте мне "удочку"... удалил, скопировал, вставил в модуль ThisDocument.
Макрос в списке для запуска отсутствовал. Запустил по кнопке, всё сработало:)
Что не так я сделал, чтобы запускать макрос по кнопке "выполнить", причём для любых следующих документов?
Как я понял, это способ "заплатки" на то, что я навоял... создать новый макрос и проследить, чтобы он был в «ActiveDocument»? Спасибо.

Iska
16-05-2019, 14:03
для любых следующих документов? »
Так:
Либо поменяйте в коде объект «ThisDocument» на «ActiveDocument» и сделайте перед выполнением кода искомый документ активным. »

и проследить, чтобы он был в «ActiveDocument»? »
Нет. В коде поменять объект «ThisDocument» на «ActiveDocument»:
Option Explicit

Sub Sample()
Dim objParagraph As Paragraph

For Each objParagraph In ActiveDocument.Content.Paragraphs
If InStr(1, objParagraph.Range.Text, "Laden der Transaktionsdetails", vbTextCompare) > 0 Then
objParagraph.Range.Delete
End If
Next objParagraph
End Sub
и оставить макрос в шаблоне Normal.dotm.

flev45
16-05-2019, 14:31
как удалить все строки с "жирным" текстом, в начале которого стоит "точка"? »
И последнее: как удалить/убрать из документа все эти строки?

Iska
16-05-2019, 14:35
И последнее: как удалить/убрать из документа все эти строки? »
Сообщение #2 (http://forum.oszone.net/post-2871810-2.html), п. 2б. Или Вы хотите именно удалить данные строки абзацы?

flev45
16-05-2019, 14:36
1б. Правильнее говорить не «строка», а «абзац».
2а. В начале абзаца не «стоит "точка"», а находится метка многоуровневого списка:
Скрытый текст
2б. Ничего «удалять» не нужно. В Вашем случае досточно тупо скопировать формат с любой отличной строки и протянуть его на весь текст: »
Я пробовал так делать. Появляется символ "метла"... что с ним делать, чтобы всё это удалить?
Сообщение #2, п. 2б. Или Вы хотите именно удалить данные строки абзацы? »
Да, удалить. Мне эти абзацы не нужны:)

Iska
16-05-2019, 14:50
что с ним делать, чтобы всё это удалить? »
Протянуть от начала документа до конца. Тем самым Вы скопируете формат выделенного абзаца все те, поверх которых протянете эту «метлу». Проще всего делать эту протяжку слева от текста, вдоль полей: https://i.imgur.com/27Reecw.gifv.

А, не нужны… Не дочитал. Ну, давайте попробуем удалить все абзацы, оформленные списком. Делать?

P.S. Вы зря не хотите использовать это (http://forum.oszone.net/post-2871885.html#post2871885). Экспортировали, открыли в Excel/Word/Access, отформатировали по своему желанию — и готово. Быстро и просто.

flev45
16-05-2019, 15:06
А, не нужны… Не дочитал. Ну, давайте попробуем удалить все абзацы, оформленные списком. Делать?
P.S. Вы зря не хотите использовать это. Экспортировали, открыли в Excel/Word/Access, отформатировали по своему желанию — и готово. Быстро и просто. »
Конечно делать!
ПС: там есть своя специфика. ПайПал в этих файлах даёт подробнейшую инфу, включая свои внутренние заморочки, которая мне не нужна. Я выделил весь текст с HTML и перенёс его в word... а там всё тоже быстро, с Вашей помощью:)

Iska
16-05-2019, 15:32
ПайПал в этих файлах даёт подробнейшую инфу, включая свои внутренние заморочки, которая мне не нужна. »
Ничто не мешает исключить эту информацию при импорте данных из .csv. Так Вы сделаете это один раз — и навсегда.

Попробуйте посмотреть: Microsoft Excel Получение внешних данных - Поиск в Google (https://www.google.com/search?q=Microsoft+Excel+%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5+%D0%B2%D0%BD%D0%B5%D 1%88%D0%BD%D0%B8%D1%85+%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85), может, понравится?!




© OSzone.net 2001-2012