![]() |
|
Модераторы: mihanik |
![]()
|
|
| nikhardy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 19.12.2011 Репутация: нет Всего: нет |
История
Экономический отдел создал форму отчётности (From.xls). Разослал филиалам. Её заполнили и прислали назад 500 файлов. Но потом форму экономический отдел поменял (удалил несколько строчек). Требуется: Все старые файлы быстро и автоматизированно перевести в новый формат (To.xls). Подробнее: Требуется: брать значения ячеек строчки из файла From и класть в заданную строчку в файле To.xls. И далее сохранить свежезаполненный To.xls под уникальным именем. На выходе: Хочется вместо файлов From (1).xls, From (2).xls...From (200).xls иметь To (1).xls, To (2).xls...To (200).xls Как это можно сделать? Огромное спасибо заранее тому, кто ответит p.s. Да, я уже заказал книги по VBA, но они, зараза, ещё не пришли. Потому прошу вашей квалифицированной помощи. Направьте Файлы: From.xls и To.xls прилагаются в архиве. Присоединённый файл ( Кол-во скачиваний: 5 )
From.rar 627,36 Kb |
|||
|
||||
| LOPUH |
|
|||
![]() Растение ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 15.2.2008 Где: Красноярск Репутация: 3 Всего: 4 |
Если вам нужно просто перенести данные из ячеек одной книги в ячейки другой, при этом вы далеки от VBA, то тут в самый раз может подойти запись макросов. То есть добавляете в книгу-приемник новый лист, копируете на него данные из формы источника. Далее включаете запись макроса и ручками перетаскиваете все нужные данные в нужном порядке. По окончании -останавливаете запись, копируете данные из другой формы и запускаете записанный макрос.
А вот чтобы перебирать автоматически все книги в какой то папке то необходим цикл, тут придется писать руками. тогда дополнительный лист создавать не нужно, а просто копировать из книги в книгу внутри цикла. Это сообщение отредактировал(а) LOPUH - 19.12.2011, 12:09 |
|||
|
||||
| nikhardy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 19.12.2011 Репутация: нет Всего: нет |
К сожалению, там 500 документов. И у меня уже имеется похожий макрос, но я его не до конца понимаю (он чужой).
Если бы вы смогли помочь мне разобраться с этим макросом, я, возможно, сам бы всё написал. Private Sub Main() ' Определим переменные Dim path As String, file As String, arg As String, i As Long 'Не будем отображать действия макроса Application.ScreenUpdating = False 'Спросим пользователя о том, в какой папке лежат файлы With Application.FileDialog(msoFileDialogFolderPicker) .Title = "Укажите рабочую папку": .Show If .SelectedItems.Count = 0 Then Exit Sub Else path = .SelectedItems(1) & "\" End With 'Далее мне не понятно ничего. Что такое ExecutreExcel4Marco? Эта часть - знаю, по очереди берёт ячейки из очередной рабочей книги и кладёт в определенные ячейки на рабочем листе (файла, в котором макрос и содержится). Но что это такое и как оно работает - я не понимаю. Rows("2:" & Rows.Count).ClearContents: file = Dir(path & "*.xls"): i = 2 Do While file <> "" Cells(i, 1) = ExecuteExcel4Macro("'" & path & "[" & file & "]" & "Лист1'!" & Range("H13").Range("A1").Address(, , xlR1C1)) Cells(i, 2) = ExecuteExcel4Macro("'" & path & "[" & file & "]" & "Лист1'!" & Range("B19").Range("A1").Address(, , xlR1C1)) i = i + 1: file = Dir Loop End Sub |
|||
|
||||
| nikhardy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 19.12.2011 Репутация: нет Всего: нет |
Где, в каких строках происходит переход к следующему по списку файлу в директории? Спасибо, уважаемые) |
|||
|
||||
| LOPUH |
|
||||||
![]() Растение ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 15.2.2008 Где: Красноярск Репутация: 3 Всего: 4 |
Очищает содержимое строк начиная со второй и по последнюю (Rows.Count -число строк)
присваивает переменной значение , в данном случае это адрес файла
увеличивает значение переменной то есть осуществляется переход к следующей папке Это сообщение отредактировал(а) LOPUH - 20.12.2011, 13:46 |
||||||
|
|||||||
| nikhardy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 19.12.2011 Репутация: нет Всего: нет |
i = i + 1 - не переход к новой папке.
Это переход к новой ячейке (строчке). Чтобы формировался список. А вот цикла на смену КНИГИ нету. И мне это выносит мозг. КАК происходит переход к следующему файлу? Добавлено через 2 минуты и 23 секунды
|
|||
|
||||
![]()
|
| Правила форума "Программирование, связанное с MS Office" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще!
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |