Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2012, 23:20   #1
Dimon_M
Новичок
Джуниор
 
Регистрация: 14.11.2012
Сообщений: 1
Вопрос Макрос: разбития текста на отдельные файлы по заголовкам.

Добрый день!
Выручите пожалуйста!
Есть файлы doc и rtf текст с таблицами и заголовками.
Необходимо из текста взять целиком заголовки (с текстом) и из каждого сделать отдельный файл, имя каждого файла = имени заголовка.

Есть очень хороший похожий вариант от viter.alex

Цитата:
Option Explicit

Sub DivideToChapters()
'Отключаем обновление экрана
Application.ScreenUpdating = False
On Error Resume Next
'Запоминаем основной документ в переменную
Dim oMainDoc As Document: Set oMainDoc = ActiveDocument 'Документ с текстом
'Запоминаем содержимое документа от положения курсора и до конца документа
Dim oRng As Range: Set oRng = oMainDoc.Range(Selection.Range.Star t, oMainDoc.Range.End)
'Создаем новый документ и запоминаем его переменную. В этот новый документ будет копироваться _
текст из каждой главы и сохраняться под своим именем
Dim oNewDoc As Document: Set oNewDoc = Documents.Add
'Переменные для работы: путь к каталогу, объект для скриптов, счетчик глав, имя главы
Dim sPath$, FSO, counter%, sName$
'Путь к каталогу, в который будут сохраняться главы. Имя каталога совпадает с именем файла
sPath = oMainDoc.Path & Application.PathSeparator & Mid(oMainDoc.Name, 1, InStrRev(oMainDoc.Name, ".") - 1)
'Создаем каталог на диске
Set FSO = CreateObject("Scripting.FileSystemO bject")
FSO.CreateFolder sPath
'Если каталог уже создан, то пропускаем ошибку
If Err.Number = 5 Then Err.Clear
Dim iStart&, iEnd& 'Переменные для хранения начала и конца главы
iStart = oRng.Start
'Производим поиск в документе по цвету текста. Цвет берем из первого символа после курсора.
With oRng.Find
.Font.Color = oMainDoc.Range(iStart, iStart + 1).Font.Color
'Если текст с таким цветом найден
While .Execute
If .Parent.Start <> iStart Then 'Отсекаем строку в которой находится курсор
counter = counter + 1
iEnd = .Parent.Start 'Конец главы
oMainDoc.Range(iStart, iEnd).Copy 'Копируем главу
oNewDoc.Range.Paste 'Вставляем в новый документ
oNewDoc.SaveAs sPath & Application.PathSeparator & counter & " " & sName & ".txt", wdFormatText 'Сохраняем как обычный текст
iStart = iEnd 'Конец предыдущей главы делаем началом следующей
End If
sName = Trim(Replace(.Parent.Text, vbCr, "")) 'Название главы
Wend
'Сохранение последней главы (до конца документа)
oMainDoc.Range(iStart, oMainDoc.Range.End).Copy
oNewDoc.Range.Paste
oNewDoc.SaveAs sPath & Application.PathSeparator & counter + 1 & " " & sName & ".txt", wdFormatText, addtorecentfiles:=False
End With
oNewDoc.Close False 'Закрываем документ
Application.ScreenUpdating = True: Application.ScreenRefresh 'Обновляем экран
End Sub
Но он не подходит.
Необходимо чтобы макрос брал заголовки (заголовок1 и заголовок2),и сохранял все под заголовком включая таблицы в том-же формате.

Последний раз редактировалось Dimon_M; 15.11.2012 в 14:33.
Dimon_M вне форума Ответить с цитированием
Старый 15.11.2012, 22:54   #2
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

какой формат на выходе

что должны получить --где места разрыва(имеется в виду стык заг1-заг2)

название отчета
-------------------------------------
заголовок1 ллллллллллллл
заголовок2 лллллллллллллл
оооооооооооооооооооо
рррррррррррррррррррррр
таблицы
рисунки
--------------------------------------
. заголовок2 лллллллллллллл
ррррррррррррррррррр ооооооооооооо
------------------------------------
заголовок2 лллллллллллллл
ооооооооооооооооооооо
---------------------------------
заголовок1 ллллллллллллл
заголовок2 лллллллллллллл
оооооооооооооооооооо
рррррррррррррррррррррр
таблицы
рисунки
---------------------------------------
. заголовок2 лллллллллллллл
ррррррррррррррррррр ооооооооооооо
----------------------------------------
заголовок2 лллллллллллллл
ллллллллллллллллллллллллл

подписи
шшшшшшшшшшшшшшшшшшшшш шшшшшшшшшш шшшш
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 17.11.2012, 14:34   #3
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Пока суд да дело, в режиме Структура вытяните нужные заголовки на Рабочий стол.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 18.11.2012, 01:50   #4
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Sasha_Smirnov, я не знал о такой фишке, но в 2010 не получается у меня. Не вытягивается ничего
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 18.11.2012, 02:15   #5
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Word плавно деградирует к WordPad!

Суть "вытягивания" — получение выделенного куска в виде отдельного документа (в той папке, где мы отпустили "тянущую" мышь). Может, для выделения, не нажали на плюсик:
Изображения
Тип файла: png Drag&Drop.png (21.7 Кб, 42 просмотров)

Последний раз редактировалось Sasha_Smirnov; 18.11.2012 в 02:29.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 18.11.2012, 20:02   #6
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Было... http://programmersforum.ru/showthread.php?t=209102
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разбиение программы на отдельные файлы Митовей Общие вопросы C/C++ 18 08.04.2012 21:10
Макрос разбивки на отдельные ячейки AllenJ Microsoft Office Excel 25 10.01.2012 21:09
Сортировка и перенос данных в отдельные файлы Axell_ Microsoft Office Excel 4 30.08.2011 14:51
Сохранение листов из 1 файла в отдельные файлы 2S2A1H Microsoft Office Excel 0 26.05.2011 10:14