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

Вход

Регистрация

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

 

= Мир MS Excel/форматирование сносок скопированного документа word (vbs) - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
форматирование сносок скопированного документа word (vbs)
Дмит2015 Дата: Четверг, 17.12.2015, 20:37 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый вечер! Уже не первый день ломаю голову на просторах интернета, но не могу найти решение. Проблема в следующем. Есть файл ворд, который состоит из однотипной информации, его необходимо разбить на разные файлы, (каждый файл должен начинаться со слова отчет и заканчиваться датой) и отформатировать (ширина левого поля, отступ после абзаца, шрифт и т.д.). Нашел vbs, который разделяет документ на составляющие, добавил ширину левого поля, шрифт. Но возникла проблема со сносками документа. Подскажите, пожалуйста, как доработать данный файл, чтобы он также форматировал отступы абзаца и шрифт раздела сносок такими же параметрами как и основной текст.
Или может быть это можно сделать как-нибудь иначе, через другой макрос.
Заранее спасибо.
[moder]Выложите пример файла и код[/moder]


Сообщение отредактировал Manyasha - Пятница, 18.12.2015, 09:34
 
Ответить
СообщениеДобрый вечер! Уже не первый день ломаю голову на просторах интернета, но не могу найти решение. Проблема в следующем. Есть файл ворд, который состоит из однотипной информации, его необходимо разбить на разные файлы, (каждый файл должен начинаться со слова отчет и заканчиваться датой) и отформатировать (ширина левого поля, отступ после абзаца, шрифт и т.д.). Нашел vbs, который разделяет документ на составляющие, добавил ширину левого поля, шрифт. Но возникла проблема со сносками документа. Подскажите, пожалуйста, как доработать данный файл, чтобы он также форматировал отступы абзаца и шрифт раздела сносок такими же параметрами как и основной текст.
Или может быть это можно сделать как-нибудь иначе, через другой макрос.
Заранее спасибо.
[moder]Выложите пример файла и код[/moder]

Автор - Дмит2015
Дата добавления - 17.12.2015 в 20:37
Дмит2015 Дата: Суббота, 19.12.2015, 12:17 | Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
[vba]
Код
option explicit

const wdFindContinue = 1
const pattern = "<Отчет *<[0-2][0-9].[0-3][0-9].20[0-9][0-9]>"

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,"\"))
'20
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 ' ok

dnew.Paragraphs.Format.SpaceAfter = 0
dnew.content.font.Name = "Courier New"

With dnew.Sections
.PageSetup.LeftMargin = 56
End With

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
[/vba]
[moder]Код нужно обрамлять спецтегами. Кнопка #. Поправил на первый раз.
К сообщению приложен файл: 6582981.docx (21.1 Kb)


Сообщение отредактировал _Boroda_ - Суббота, 19.12.2015, 12:29
 
Ответить
Сообщение[vba]
Код
option explicit

const wdFindContinue = 1
const pattern = "<Отчет *<[0-2][0-9].[0-3][0-9].20[0-9][0-9]>"

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,"\"))
'20
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 ' ok

dnew.Paragraphs.Format.SpaceAfter = 0
dnew.content.font.Name = "Courier New"

With dnew.Sections
.PageSetup.LeftMargin = 56
End With

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
[/vba]
[moder]Код нужно обрамлять спецтегами. Кнопка #. Поправил на первый раз.

Автор - Дмит2015
Дата добавления - 19.12.2015 в 12:17
Manyasha Дата: Четверг, 24.12.2015, 20:09 | Сообщение № 3
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 901 ±
Замечаний: 0% ±

Excel 2010, 2016
Дмит2015, если еще нужно, в эту строчку добавьте знак вопроса
[vba]
Код
Const pattern = "<?Отчет *<[0-2][0-9].[0-3][0-9].20[0-9][0-9]>"
[/vba]
тогда первая сноска тоже будет копироваться, а так она у Вас не в ходит в кусок "Отчет...Дата"


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеДмит2015, если еще нужно, в эту строчку добавьте знак вопроса
[vba]
Код
Const pattern = "<?Отчет *<[0-2][0-9].[0-3][0-9].20[0-9][0-9]>"
[/vba]
тогда первая сноска тоже будет копироваться, а так она у Вас не в ходит в кусок "Отчет...Дата"

Автор - Manyasha
Дата добавления - 24.12.2015 в 20:09
Дмит2015 Дата: Четверг, 24.12.2015, 20:34 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Manyasha, добрый вечер!
Проблема немного в другом: как отредактировать текст сносок - шрифт, размер, межстрочный интервал и т.д.
Заранее спасибо!
 
Ответить
СообщениеManyasha, добрый вечер!
Проблема немного в другом: как отредактировать текст сносок - шрифт, размер, межстрочный интервал и т.д.
Заранее спасибо!

Автор - Дмит2015
Дата добавления - 24.12.2015 в 20:34
Manyasha Дата: Пятница, 25.12.2015, 13:42 | Сообщение № 5
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 901 ±
Замечаний: 0% ±

Excel 2010, 2016
Дмит2015, посмотрите такой вариант


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеДмит2015, посмотрите такой вариант

Автор - Manyasha
Дата добавления - 25.12.2015 в 13:42
Дмит2015 Дата: Воскресенье, 27.12.2015, 19:54 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013

Добрый вечер!
Спасибо большое, все получилось, супер!
 
Ответить
Сообщение
Добрый вечер!
Спасибо большое, все получилось, супер!

Автор - Дмит2015
Дата добавления - 27.12.2015 в 19:54
  • Страница 1 из 1
  • 1
Поиск:

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