Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Разбивка файла word на несколько файлов - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Разбивка файла word на несколько файлов
Timberwolf Дата: Среда, 08.04.2015, 21:06 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Доброго времени суток, уважаемые Форумчани.
Имеется файл Word, который содержит 15 вопросов, возможно ли создать макрос, который бы сохранил каждый вопрос в отдельный файл Word?
Заранее спасибо!
К сообщению приложен файл: Kulturno-pobuto.doc (99.5 Kb)
 
Ответить
СообщениеДоброго времени суток, уважаемые Форумчани.
Имеется файл Word, который содержит 15 вопросов, возможно ли создать макрос, который бы сохранил каждый вопрос в отдельный файл Word?
Заранее спасибо!

Автор - Timberwolf
Дата добавления - 08.04.2015 в 21:06
anvg Дата: Четверг, 09.04.2015, 01:39 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 581
Репутация: 271 ±
Замечаний: 0% ±

2016, 365
Доброе время суток
Поскольку текст вопросов не нумерованный список, то можно зацепиться таким образом для определения начала конца вопроса
[vba]
Код
Public Sub test()
     Dim sText As String, i As Long
     Dim paraStartId As Long, paraEndId As Long
     paraEndId = -1: paraStartId = 0
     For i = 1 To ThisDocument.Paragraphs.Count
         sText = ThisDocument.Paragraphs(i).Range.Text
         If (sText Like "#.*") Or (sText Like "##.*") Then
             If paraEndId >= paraStartId Then
                 Debug.Print "Начало вопроса: параграф " & CStr(paraStartId) _
                 & ", конец вопроса: параграф " & CStr(paraEndId)
             End If
             paraStartId = i
         End If
         paraEndId = i
     Next
     If paraStartId > 0 Then
         Debug.Print "Начало вопроса: параграф " & CStr(paraStartId) _
         & ", конец вопроса: параграф " & CStr(ThisDocument.Paragraphs.Count)
     End If
End Sub
[/vba]
Допишите создание нового документа, копирование параграфов вопроса и сохранение
Успехов!
 
Ответить
СообщениеДоброе время суток
Поскольку текст вопросов не нумерованный список, то можно зацепиться таким образом для определения начала конца вопроса
[vba]
Код
Public Sub test()
     Dim sText As String, i As Long
     Dim paraStartId As Long, paraEndId As Long
     paraEndId = -1: paraStartId = 0
     For i = 1 To ThisDocument.Paragraphs.Count
         sText = ThisDocument.Paragraphs(i).Range.Text
         If (sText Like "#.*") Or (sText Like "##.*") Then
             If paraEndId >= paraStartId Then
                 Debug.Print "Начало вопроса: параграф " & CStr(paraStartId) _
                 & ", конец вопроса: параграф " & CStr(paraEndId)
             End If
             paraStartId = i
         End If
         paraEndId = i
     Next
     If paraStartId > 0 Then
         Debug.Print "Начало вопроса: параграф " & CStr(paraStartId) _
         & ", конец вопроса: параграф " & CStr(ThisDocument.Paragraphs.Count)
     End If
End Sub
[/vba]
Допишите создание нового документа, копирование параграфов вопроса и сохранение
Успехов!

Автор - anvg
Дата добавления - 09.04.2015 в 01:39
Timberwolf Дата: Четверг, 09.04.2015, 09:57 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо anvg, еще вопрос по теме, есть рабочий макрос, можно ли в нем изменить название нового файла с Teil_" & x & "_" & origdoc & ".doc
на первый параграф нового файла?


[moder]Ну Вы чего творите-то? Для макросов есть спецтег - кнопка #.
Большие коды нужно под спойлер класть.
Поправил за Вас. В следующий раз ругаться буду.


Сообщение отредактировал Timberwolf - Четверг, 09.04.2015, 10:13
 
Ответить
СообщениеСпасибо anvg, еще вопрос по теме, есть рабочий макрос, можно ли в нем изменить название нового файла с Teil_" & x & "_" & origdoc & ".doc
на первый параграф нового файла?


[moder]Ну Вы чего творите-то? Для макросов есть спецтег - кнопка #.
Большие коды нужно под спойлер класть.
Поправил за Вас. В следующий раз ругаться буду.

Автор - Timberwolf
Дата добавления - 09.04.2015 в 09:57
anvg Дата: Четверг, 09.04.2015, 14:28 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 581
Репутация: 271 ±
Замечаний: 0% ±

2016, 365
Доброе время суток
Если вы посмотрите мой код, то как раз увидите код получения текста параграфа
[vba]
Код
sText = ThisDocument.Paragraphs(i).Range.Text
[/vba]
Переменная paraStartId, при выполнении условия как раз и содержит номер первого параграфа.
Но, необходимо учитывать число символов текста, ОС имеет ограничение по полному названию файла (включая путь). Также, в тексте могут содержаться недопустимые для названия файла символы, как, например :/\*?
 
Ответить
СообщениеДоброе время суток
Если вы посмотрите мой код, то как раз увидите код получения текста параграфа
[vba]
Код
sText = ThisDocument.Paragraphs(i).Range.Text
[/vba]
Переменная paraStartId, при выполнении условия как раз и содержит номер первого параграфа.
Но, необходимо учитывать число символов текста, ОС имеет ограничение по полному названию файла (включая путь). Также, в тексте могут содержаться недопустимые для названия файла символы, как, например :/\*?

Автор - anvg
Дата добавления - 09.04.2015 в 14:28
Timberwolf Дата: Четверг, 09.04.2015, 17:41 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Я честно сказать в макросах новичок, вы не могли бы подставить эту строчку в мой макрос, и как сделать, чтобы второй файл назывался как первая линия второго файла и т.д.


Сообщение отредактировал Timberwolf - Четверг, 09.04.2015, 18:15
 
Ответить
СообщениеЯ честно сказать в макросах новичок, вы не могли бы подставить эту строчку в мой макрос, и как сделать, чтобы второй файл назывался как первая линия второго файла и т.д.

Автор - Timberwolf
Дата добавления - 09.04.2015 в 17:41
anvg Дата: Суббота, 11.04.2015, 03:29 | Сообщение № 6
Группа: Друзья
Ранг: Ветеран
Сообщений: 581
Репутация: 271 ±
Замечаний: 0% ±

2016, 365
Доброе время суток
Если вы про код выше выложенного вами макроса, то поменяйте строчку
[vba]
Код
ActiveDocument.SaveAs FileName:="Teil_" & x & "_" & origdoc & ".doc"
[/vba]
на
[vba]
Код
ActiveDocument.SaveAs FileName:=Mid$(ActiveDocument.Paragraphs(1).Range.Text, 1, Len(ActiveDocument.Paragraphs(1).Range.Text) - 1) & ".doc"
[/vba]
Помните об ограничениях файловой системы на имена файлов.
 
Ответить
СообщениеДоброе время суток
Если вы про код выше выложенного вами макроса, то поменяйте строчку
[vba]
Код
ActiveDocument.SaveAs FileName:="Teil_" & x & "_" & origdoc & ".doc"
[/vba]
на
[vba]
Код
ActiveDocument.SaveAs FileName:=Mid$(ActiveDocument.Paragraphs(1).Range.Text, 1, Len(ActiveDocument.Paragraphs(1).Range.Text) - 1) & ".doc"
[/vba]
Помните об ограничениях файловой системы на имена файлов.

Автор - anvg
Дата добавления - 11.04.2015 в 03:29
Timberwolf Дата: Понедельник, 13.04.2015, 23:48 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
я прошу прошения, а как добавить ещё параграфы чтобы например 2 файл назывался как второй параграф 3 файл как третий параграф и.т.д
 
Ответить
Сообщениея прошу прошения, а как добавить ещё параграфы чтобы например 2 файл назывался как второй параграф 3 файл как третий параграф и.т.д

Автор - Timberwolf
Дата добавления - 13.04.2015 в 23:48
anvg Дата: Вторник, 14.04.2015, 07:54 | Сообщение № 8
Группа: Друзья
Ранг: Ветеран
Сообщений: 581
Репутация: 271 ±
Замечаний: 0% ±

2016, 365
Доброе время суток
Timberwolf, я всё же полагаю, что следует помочь научиться человеку писать макросы, а не писать вместо него. Как-то не горю желанием писать вместо вас элементарные вещи. Может вам лучше обратиться в раздел Работа / Фриланс?
 
Ответить
СообщениеДоброе время суток
Timberwolf, я всё же полагаю, что следует помочь научиться человеку писать макросы, а не писать вместо него. Как-то не горю желанием писать вместо вас элементарные вещи. Может вам лучше обратиться в раздел Работа / Фриланс?

Автор - anvg
Дата добавления - 14.04.2015 в 07:54
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!