Страница 1 из 1
Макрос для word
Добавлено: 10 сен 2010, 14:48
КИС
Добрый день, уважемые форумчане...
Вообщем такая проблема, не могли бы подсказать, как правильно написать скрипт на VBA, работать должен вот так(пример):
Дается текст:
15.25 "ИНТЕРНЫ". Ситком.
16.00 "ИНТЕРНЫ". Ситком.
16.30 "ИНТЕРНЫ". Ситком.
Нужно чтобы было вот так:
15.25, 16.00, 16.30 "ИНТЕРНЫ". Ситком.
Или еще вот так (к примеру):
Дается текст:
15.25 "ИНТЕРНЫ". Ситком.
16.00 "УНИВЕР". Ситком.
16.30 "ИНТЕРНЫ". Ситком.
Нужно чтобы было вот так:
15.25, 16.30 "ИНТЕРНЫ". Ситком.
16.00 "УНИВЕР". Ситком.
Все обыскал, не могу решить...
Помогите решить, может кто нибудь натыкался, дайте ссылку, если есть.
Re: Макрос для word
Добавлено: 10 сен 2010, 19:18
EducatedFool
Если бы исходный текст был не в Word, а в Excel - все можно было бы сделать одной функцией:
http://excelvba.ru/code/JoinedArray
Re: Макрос для word
Добавлено: 10 сен 2010, 21:21
КИС
Да нет, в том то и дело, что нужно для word, а про excel я знаю...
Re: Макрос для word
Добавлено: 11 сен 2010, 08:52
AlexEL
Попробуй так:
Код: Выделить всё
Public Sub Программа()
' сортируем по названиям
ActiveDocument.Range.Sort _
ExcludeHeader:=False, _
FieldNumber:=2, _
SortFieldType:=Word.wdSortFieldStroke, _
SortOrder:=Word.wdSortOrderAscending, _
FieldNumber2:=1, _
SortFieldType2:=Word.wdSortFieldStroke, _
SortOrder2:=Word.wdSortOrderAscending, _
CaseSensitive:=True, _
Separator:=" "
' удаляем дубликаты названий
With ActiveDocument.Range.Find
.ClearFormatting
.Replacement.ClearFormatting
.MatchWildcards = True
.Wrap = wdFindContinue
.Text = "([0-9., ]@)( ""[!^13]@^13)([0-9., ]@)(\2)"
.Replacement.Text = "\1, \3\4"
While .Execute(Replace:=Word.wdReplaceAll): Wend
End With
' сортируем по времени
ActiveDocument.Range.Sort _
ExcludeHeader:=False, _
FieldNumber:=1, _
SortFieldType:=Word.wdSortFieldNumeric, _
SortOrder:=Word.wdSortOrderAscending, _
FieldNumber2:=2, _
SortFieldType2:=Word.wdSortFieldNumeric, _
SortOrder2:=Word.wdSortOrderAscending, _
Separator:="."
End Sub
Re: Макрос для word
Добавлено: 11 сен 2010, 13:17
КИС
Хорошо, щас проверю...
Re: Макрос для word
Добавлено: 12 сен 2010, 08:32
Busine2009
КИС
только Ситком встречается? В остальном меняется только время и название передач?
Т. е. одинаковые названия передач надо объединять?
Сколько дней находится в одном документе? Нужен макрос, который сразу все дни обработает или можно выделять день и его обрабатывать, а затем к следующему переходить? Если несколько дней, то какие они имею заголовки (что написано, например, понедельник).
Чтобы много не писать, лучше вставь образец файла.
Re: Макрос для word
Добавлено: 12 сен 2010, 19:16
КИС
Ну вообщем каналов много, и обрабатывать нужно все дни, соответственно названия каналов не меняется практически, меняется только время, одинаковые нужно объединить, хотел бы запускать макрос после выделения к примеру понедельника, потом вторник, потом прогонять по среду, ну так и далее... Ладно вечером в понедельник, или во вторник выложу образец, и оригинал и обработанный (правда эти моменты, ну эти объединения еще не автоматизаровал), поэтому делаем в ручную, а это практически потеря 6 часов... Пока еще копаюсь VBA целыми днями, пытаюсь облегчить труд себе, возможно еще кому нибудь пригодяться...
Re: Макрос для word
Добавлено: 13 сен 2010, 07:53
EducatedFool
Посмотрите макрос во вложении в этом сообщении:
http://www.programmersforum.ru/showpost ... stcount=11
Там есть что-то связанное с обработкой телепрограмм.
Re: Макрос для word
Добавлено: 14 сен 2010, 21:17
КИС
Спасибо большое, к этому я присматривался...