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

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

что то не так.
файл с отчетами делится на разные файлы. мой файл нет. перетаскиваю на скрипт как описано в веше указанном посте.
скрин прилагаю
...
Рейтинг: 0 / 0
31.07.2019, 22:17
    #39843725
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разделить большой Word документ на маленькие
Значит ты неправильно перенастроил разделитель для своего файла. Мы опять должны угадать, как именно ты отредактировал скрипт?
...
Рейтинг: 0 / 0
01.08.2019, 02:28
    #39843758
pavrus2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разделить большой Word документ на маленькие
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
01.08.2019, 02:33
    #39843759
pavrus2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разделить большой Word документ на маленькие
pavrus2,

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

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

как лучше указать концовку? в конце мы можем указать любое значение. но дата у меня не прошла
...
Рейтинг: 0 / 0
01.08.2019, 13:52
    #39844080
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разделить большой Word документ на маленькие
Ну и напиши слово "Концовка", какая разница. Надо же заставить скрипт заработать, а потом уже можно нюансы допиливать.
...
Рейтинг: 0 / 0
01.08.2019, 15:54
    #39844194
pavrus2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разделить большой Word документ на маленькие
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
01.08.2019, 16:03
    #39844204
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разделить большой Word документ на маленькие
pavrus2создается только один файлНаверное потому, что файл получает всё время одно и то же имя? В исходном-то скрипте использовалась дата в качестве имени файла
...
Рейтинг: 0 / 0
01.08.2019, 17:10
    #39844242
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разделить большой Word документ на маленькие
Не дата, а начало документа, но сути не меняет, у тебя они все одинаковые
...
Рейтинг: 0 / 0
02.08.2019, 05:00
    #39844375
pavrus2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разделить большой Word документ на маленькие
Shocker.Pro,

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


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