|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
06.09.2012, 14:24 | #1 |
Пользователь
Регистрация: 31.07.2012
Сообщений: 79
|
Однотипное форматирование нескольких документов
Написал макрос изменения форматирования документа.
Но он действует только на открытую книгу. Подскажите, как сделать, чтобы можно было применить данный макрос к нескольким файлам? Устроит любой вариант (применение к файлам в определённой папке, или же выбор файлов...) |
06.09.2012, 14:30 | #2 | |
Участник клуба
Регистрация: 02.05.2010
Сообщений: 1,390
|
Но вам его не покажу!:-)
Дык, оне все практически. Не ну кроме kill там, oldname as newname и т.д. Цитата:
?
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728 Последний раз редактировалось kuklp; 06.09.2012 в 14:34. |
|
06.09.2012, 14:45 | #3 | |
Пользователь
Регистрация: 31.07.2012
Сообщений: 79
|
Цитата:
'1)изменение колонтитула на КОЛОНТИТУЛ With ActiveSheet.PageSetup .RightHeader = " &""Arial,полужирный"" КОЛОНТИТУЛ" End With '2)переименование листа ActiveSheet.Name = "ЛИСТ" '3)подстановка нужной шапки с переменными Range("A1") = "Слова A с B " '4)удаление лишних данных в ячейке Range("A3") = " " '5)замена за период на в течение периода Range("A2").Select ActiveCell.Replace What:="за период", Replacement:="в течение периода", _ LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:= _ False, ReplaceFormat:=False '6)удаление ненужных столбцов и снятие выделения со столбца Columns("D:D").Delete Columns("O:O").Delete Columns("Q:Q").Select Selection.Interior.ColorIndex = xlNone '7)Выбор человека через инпутбокс Dim uch As Variant uch = InputBox("выберите человека", "ЧЕЛОВЕК", "") If uch <> "" Then Range("A1").Select ActiveCell.Replace What:="A", Replacement:=uch, _ LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:= _ False, ReplaceFormat:=False End If '8)Выбор штуки через инпутбокс Dim ins As Variant ins = InputBox("Выберите штуку", "ШТУКА", "") If ins <> "" Then Range("A1").Select ActiveCell.Replace What:="B", Replacement:=ins, _ LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:= _ False, ReplaceFormat:=False End If End Sub Ну вот макрос. Мне сотню файлов как-то не шибко удобно открывать и в каждой применять макрос. Поэтому захотел посоветоваться. в идеале хочу чтобы можно было кинуть файлики в папочку, запустить макрос, и он их преобразует в нужное форматирование. |
|
06.09.2012, 14:59 | #4 |
Участник клуба
Регистрация: 02.05.2010
Сообщений: 1,390
|
Почитайте справку по GetOpenFilename Method
Там и пример есть. И в поиске много интересного мона найти.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728 |
06.09.2012, 15:02 | #5 |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
используйте объекты из "Scripting.FileSystemObject" для перебора файлов в каталоге и по-очереди их открывайте, а потом форматируйте.
http://programmersforum.ru/showthread.php?t=30219 В этой теме немало примеров, как сделать подобное.
Правильно поставленная задача - три четверти решения.
|
07.09.2012, 13:50 | #6 | |
Пользователь
Регистрация: 31.07.2012
Сообщений: 79
|
Цитата:
Вот моя программа действия. Я выбираю папку, открываю файлы, применяю нужное форматирование. Так? Пока что у меня получилось примерно так: Sub PaketnayaObrabotka() On Error Resume Next Set Fso = CreateObject("Scripting.FileSystemO bject") Set folder = Fso.GetFolder("C:\Documents and Settings\1") MsgBox folder.Name For Each file In folder.Files Range("A1") = "Ячейка" Next End Sub Но при запуске макроса не изменяет файлы. А если их открыть и запустить макрос, то изменяет лишь один из файлов. Видимо активный. Направьте начинающего в нужное русло) Спасибо. |
|
10.09.2012, 10:45 | #7 | |
Пользователь
Регистрация: 31.07.2012
Сообщений: 79
|
Цитата:
|
|
10.09.2012, 10:58 | #8 |
Участник клуба
Регистрация: 02.05.2010
Сообщений: 1,390
|
Код:
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728 |
10.09.2012, 11:55 | #9 | |
Пользователь
Регистрация: 31.07.2012
Сообщений: 79
|
Цитата:
Еще 2 вопроса: Как называются эти команды после точки (обобщающее значение)? где можно почитать? Как вставлять в тело сообщения на форуме код с подсветкой? И еще маленький вопросик: With Workbooks.Open(file.Path).Worksheet s(1).[a1] .Value = "Ячейка" .Parent.Parent.Close -1 End With Допустим я хочу изменить еще ряд параметров страницы и не обязательно с ячейкой А1, но если я выделю это в отдеьный виф, то это будет замедлять макрос, поскольку снова откроет файлы, скорректирует их и закроет. Как можно этого избежать? Может в теле Виф можно какой-нибудь оператор использовать со смыслом "и" ? Заранее извиняюсь за мою неполную компетентность в терминологии) ___________________________________ _________________________ Sub PaketnayaObrabotka() 'On Error Resume Next Set Fso = CreateObject("Scripting.FileSystemO bject") Set folder = Fso.GetFolder("C:\Documents and Settings\1") MsgBox folder.Name For Each File In folder.Files With Workbooks.Open(File.Path).Worksheet s(1).[a1] .Value = "Слова слова слова" .Parent.Parent.Close -1 End With With Workbooks.Open(File.Path).Worksheet s(1).[a3] .Value = " " .Parent.Parent.Close -1 End With With Workbooks.Open(File.Path).Worksheet s(1).PageSetup .RightHeader = " &""Arial,полужирный""Колонтитул" ActiveSheet.Name = "Лейбл" .Parent.Parent.Close -1 End With Next End Sub Вот на этом примере можно это упростить? Чтобы каждый раз не закрывалось - открывалось? Последний раз редактировалось tibhar940; 10.09.2012 в 16:14. Причина: Правка: |
|
10.09.2012, 19:38 | #10 |
Участник клуба
Регистрация: 02.05.2010
Сообщений: 1,390
|
Код:
tibhar940, пожалуйста, пользуйтесь тегами оформления кода. Это знак диез(решетка) над окном редактирования:-) PS писал с коленки, не проверял.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728 Последний раз редактировалось kuklp; 10.09.2012 в 19:54. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Экспорт значений из нескольких документов Word в одну таблицу Excel для дальнейших расчетов. | YJYNGK | Microsoft Office Excel | 0 | 30.10.2010 13:42 |
Возможно ли изменить колонтитул нескольких документов сразу | Grant84 | Microsoft Office Word | 2 | 14.04.2010 18:41 |
Печать документов. | Busine2009 | Microsoft Office Word | 8 | 18.06.2009 14:36 |
автозаполнение из нескольких документов | Азамат | Microsoft Office Excel | 2 | 04.06.2008 11:25 |