powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / разделить большой Word документ на маленькие
17 сообщений из 17, страница 1 из 1
разделить большой Word документ на маленькие
    #39843602
pavrus2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пожалуйста помогите решить задачу. К сожалению не смог найти на просторах интернета рабочей макрос. В наличии вордовский документ на несколько страниц (120 в оригинале). задача сохранить этот документ примерно в 120 файлах (.doc), каждый файл должен иметь уникальное имя указанное в файле. размер каждого файла в зависимости от текста может быть более одной страницы. образец исходного файла в приложении. Макрос нужен под office 365 proplus
...
Рейтинг: 0 / 0
разделить большой Word документ на маленькие
    #39843630
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pavrus2К сожалению не смог найти на просторах интернета рабочей макрос.как это не смог? Все нерабочие?
Помогите пожалуйста разбить файл .doc на части
...
Рейтинг: 0 / 0
разделить большой Word документ на маленькие
    #39843653
pavrus2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

с макросами не работал, возможно проблема в отсутствии практики . выкидывает разного типа ошибки в коде. подскажите где мой косяк!
...
Рейтинг: 0 / 0
разделить большой Word документ на маленькие
    #39843659
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pavrus2выкидывает разного типа ошибки в коде. подскажите где мой косяк!для начала в том, что считаешь, что мы экстрасенсы и сами угадаем типы ошибок на твоем экране
...
Рейтинг: 0 / 0
разделить большой Word документ на маленькие
    #39843721
pavrus2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

что то не так.
файл с отчетами делится на разные файлы. мой файл нет. перетаскиваю на скрипт как описано в веше указанном посте.
скрин прилагаю
...
Рейтинг: 0 / 0
разделить большой Word документ на маленькие
    #39843725
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значит ты неправильно перенастроил разделитель для своего файла. Мы опять должны угадать, как именно ты отредактировал скрипт?
...
Рейтинг: 0 / 0
разделить большой Word документ на маленькие
    #39843758
pavrus2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
' решение для https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1054045&msg=15001947
' использование: 
'  сохранить скрипт в удобное место
'  закрыть все экземпляры WORD
'  в проводнике перетащить обрабатываемый файл на файл скрипта
'  новые файлы будут созданы в папке с обрабатываемым файлом

option explicit

const wdFindContinue = 1
const pattern = "<TC *<}}}>"

dim w, d, dnew, a
dim name, path_save

set a = wscript.arguments
if checkArg(a) then wscript.quit 0
a = a(0)
path_save = left(a, instrrev(a,"\"))

set w = createobject("word.application")
set d = w.documents.add(a)

with w.selection.find
  .clearformatting
  .text = pattern
  .forward = True
  .matchwildcards = true
  .wrap = wdFindContinue
  do while .execute
    w.selection.copy
	name = getName(w.selection)
    set dnew = w.documents.add
	dnew.content.paste
	dnew.saveas path_save & "TC_" & name & ".doc"
	dnew.close false
  loop
end with

set dnew = nothing
d.close false
set d = nothing
w.quit
set w = nothing
wscript.echo "Готово."
wscript.quit 0

' ------------------------------------------
function checkArg(p)
if p.count<>1 Then
	wscript.echo "Неправильное число параметров." & vbLf & "Нужен 1. Есть " & p.count & "."
	checkArg = 1
end if
end function
' ------------------------------------------
function getName(sel)
  const ILLEGAL = "\/:*?""<>|", R = "#"
  dim s, k, c
  s = left(sel.text, instr(1,sel.text,chr(13))-1)
  s = mid(s, instr(1,s," ")+1)
  for k = 1 to len(ILLEGAL)
    c = mid(ILLEGAL,k,1)
    if ( instr(1, s, c) ) then s = replace(s,c,R) 
  next
  getName = s
end function



Модератор: Учимся использовать тэги оформления кода - FAQ
...
Рейтинг: 0 / 0
разделить большой Word документ на маленькие
    #39843759
pavrus2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pavrus2,

этот файл пытаемся модефицировать.
...
Рейтинг: 0 / 0
разделить большой Word документ на маленькие
    #39843762
pavrus2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

помогите пожлуйста написать скрипт, у меня уже мозг закипает. Не знаю как правильно это отредактировать.
...
Рейтинг: 0 / 0
разделить большой Word документ на маленькие
    #39843914
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорее всего потому, что фигурная скобка является подстановочным знаком, ее нельзя указать напрямую в паттерне. Поищи в хелпе ворда, как при поиске с подстановочными знаками экранировать сами подстановочные знаки.
...
Рейтинг: 0 / 0
разделить большой Word документ на маленькие
    #39844076
pavrus2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

как лучше указать концовку? в конце мы можем указать любое значение. но дата у меня не прошла
...
Рейтинг: 0 / 0
разделить большой Word документ на маленькие
    #39844080
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и напиши слово "Концовка", какая разница. Надо же заставить скрипт заработать, а потом уже можно нюансы допиливать.
...
Рейтинг: 0 / 0
разделить большой Word документ на маленькие
    #39844194
pavrus2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

изменил так:
Код: vbnet
1.
2.
const wdFindContinue = 1
const pattern = "<TC *Finish>"



создается только один файл, что может быть еще не так?


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
option explicit

const wdFindContinue = 1
const pattern = "<TC *Finish>"

dim w, d, dnew, a
dim name, path_save

set a = wscript.arguments
if checkArg(a) then wscript.quit 0
a = a(0)
path_save = left(a, instrrev(a,"\"))

set w = createobject("word.application")
set d = w.documents.add(a)

with w.selection.find
  .clearformatting
  .text = pattern
  .forward = True
  .matchwildcards = true
  .wrap = wdFindContinue
  do while .execute
    w.selection.copy
	name = getName(w.selection)
    set dnew = w.documents.add
	dnew.content.paste
	dnew.saveas path_save & "report_" & name & ".doc"
	dnew.close false
  loop
end with

set dnew = nothing
d.close false
set d = nothing
w.quit
set w = nothing
wscript.echo "Готово."
wscript.quit 0

' ------------------------------------------
function checkArg(p)
if p.count<>1 Then
	wscript.echo "Неправильное число параметров." & vbLf & "Нужен 1. Есть " & p.count & "."
	checkArg = 1
end if
end function
' ------------------------------------------
function getName(sel)
  const ILLEGAL = "\/:*?""<>|", R = "#"
  dim s, k, c
  s = left(sel.text, instr(1,sel.text,chr(13))-1)
  s = mid(s, instr(1,s," ")+1)
  for k = 1 to len(ILLEGAL)
    c = mid(ILLEGAL,k,1)
    if ( instr(1, s, c) ) then s = replace(s,c,R) 
  next
  getName = s
end function



Модератор: ЕЩЕ РАЗ! Учимся использовать тэги оформления кода - FAQ
...
Рейтинг: 0 / 0
разделить большой Word документ на маленькие
    #39844204
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pavrus2создается только один файлНаверное потому, что файл получает всё время одно и то же имя? В исходном-то скрипте использовалась дата в качестве имени файла
...
Рейтинг: 0 / 0
разделить большой Word документ на маленькие
    #39844242
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не дата, а начало документа, но сути не меняет, у тебя они все одинаковые
...
Рейтинг: 0 / 0
разделить большой Word документ на маленькие
    #39844375
pavrus2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Заработало!
Большое человеческое спасибо!
Плюс к карме, ты спас меня от увольнения)
...
Рейтинг: 0 / 0
разделить большой Word документ на маленькие
    #39844454
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pavrus2от увольненияИнтересная работа, уволить человека, который не умеет и писать скрипты за то, что не смог написать скрипт...
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / разделить большой Word документ на маленькие
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]