1

Тема: Парсинг строки таблицы Word (VBA)

Добрый день!

Подскажите, пожалуйста, как скриптом "разложить" первую строку таблицы, данные в которой записаны через ";", на нужное количество строк (количество ";"+1) 

Заранее спасибо!

2

Re: Парсинг строки таблицы Word (VBA)

Выложите пример.

3

Re: Парсинг строки таблицы Word (VBA)

Пример:
Парсинг строки таблицы Word (VBA)

4

Re: Парсинг строки таблицы Word (VBA)

1. Импортируйте вложенный файл в проект Normal.
2. Установите курсор в строке которую нужно разбить.
3. Из меню макросов запустите макрос SplitRow
4. В появившемся диалоговом окне наберите разделитель, например ;

Post's attachments

modSplitRow.bas 1.72 Кб, 4 скачиваний с 2012-10-23 

You don't have the permssions to download the attachments of this post.

5

Re: Парсинг строки таблицы Word (VBA)

aap77 пишет:

1. Импортируйте вложенный файл в проект Normal.
2. Установите курсор в строке которую нужно разбить.
3. Из меню макросов запустите макрос SplitRow
4. В появившемся диалоговом окне наберите разделитель, например ;

Ваш макрос очень хорош. Один недостаток. У меня первичная строчка (та что через ";") не вручную вводится, а подтягивается из свойств документа ({ DOCPROPERTY  #Объект_экспертизы  \* MERGEFORMAT } и т.п.). Ваш макрос их удаляет из документа и повторно  не работает.

Подскажите, пожалуйста, как быть?

6

Re: Парсинг строки таблицы Word (VBA)

Нужен нормальный образец примера, чтобы разобраться в проблеме.

7

Re: Парсинг строки таблицы Word (VBA)

aap77 пишет:

Нужен нормальный образец примера, чтобы разобраться в проблеме.

Образец:

8

Re: Парсинг строки таблицы Word (VBA)

Образец:

Post's attachments

Пример.doc 62 Кб, 7 скачиваний с 2012-10-23 

You don't have the permssions to download the attachments of this post.

9

Re: Парсинг строки таблицы Word (VBA)

Копия в архиве (на всякий случай):

Post's attachments

Пример.rar 11.64 Кб, 2 скачиваний с 2012-10-23 

You don't have the permssions to download the attachments of this post.

10

Re: Парсинг строки таблицы Word (VBA)

Вот я проверил Ваш файл, да он удаляет вставленные поля DOCPROPERTY и разбивает строку на строки согласно разделителю правильно. А за чем тогда 2-й раз запускать макрос?

11

Re: Парсинг строки таблицы Word (VBA)

aap77 пишет:

А за чем тогда 2-й раз запускать макрос?

Потому что этот пример - по сути печатная форма для сторонней программы, которая формирует значения полей DOCPROPERTY. И вызываться такая печатная форма будет  больше чем один раз.

У меня есть задумка "повесить" Ваш макрос на открытие документа Word, а на закрытие - написать макрос, который очистит таблицу от данных и вернет в первую строку DOCPROPERTY.

Только не знаю как это сделать.

12

Re: Парсинг строки таблицы Word (VBA)

Я знаю. Завтра напишу. smile

13

Re: Парсинг строки таблицы Word (VBA)

aap77 пишет:

Я знаю. Завтра напишу. smile

Где же решение?..

14

Re: Парсинг строки таблицы Word (VBA)

Решение, думаю, простое. Сохранить файл с полями под другим именем, запустить в нём макрос, а исходный оставить нетронутым. А может быть логичнее сделать шаблон?

Лучше день потерять — потом за пять минут долететь!

15

Re: Парсинг строки таблицы Word (VBA)

Товарищ kot!!!
Какой у вас Word?
Вообще напишите мне на почту, чтобы можно было оперативней общаться. И проще пересылать скрины, чтобы меньше писать словами. Мой адрес VBAproject77 @yandex.ru

16

Re: Парсинг строки таблицы Word (VBA)

Товарищ kot!
Алгоритм макроса не сложный. Во вложенном архиве скрины как это сделать вручную. Первые два скрина показывают где находятся те данные, которые Вам надо восстановить после парсинга, остальные, действия, которые надо предпринять чтобы это сделать. Попробуйте.
Если все у Вас получается, то остается только 2 вопроса:
1. Будет ли меняться количество строк в шапке?
2. Будут ли меняться имена данных.