Все доброе время!!!! Проблема состоит в следующем. Есть некий массив файлов (более 600) xls в одной папке с разными именами они абсолютно идентичны, только в таблицах разные данные. Так вот задача в следующем чтобы во всех фалах удалить два столбца, сменить название шапки таблицы и изменить высоту ячеек и наконец добавить прорисовку таблицы. Нигде не могу найти пример макроса хотя б одной из данных задач и слепить воедино! Неужели настолько сложно? Была идея сделать изменения при помощи шаблона, но тоже не увенчалась успехом! [moder]Тема создана с нарушением п.2 Правил форума. Исправлено[/moder]
Все доброе время!!!! Проблема состоит в следующем. Есть некий массив файлов (более 600) xls в одной папке с разными именами они абсолютно идентичны, только в таблицах разные данные. Так вот задача в следующем чтобы во всех фалах удалить два столбца, сменить название шапки таблицы и изменить высоту ячеек и наконец добавить прорисовку таблицы. Нигде не могу найти пример макроса хотя б одной из данных задач и слепить воедино! Неужели настолько сложно? Была идея сделать изменения при помощи шаблона, но тоже не увенчалась успехом! [moder]Тема создана с нарушением п.2 Правил форума. Исправлено[/moder]arga
Сообщение отредактировал Pelena - Четверг, 28.07.2016, 07:25
Ну и выложите пару файлов для примера. Как есть и как надо. Правила почитайте, там есть об этом. А перебор файлов в папке здесь выкладывали миллион раз. Не знаю, как уж Вы там чего искали. P.S. И что есть:
P.P.S. "наконец" надо писать слитно, если Вы конечно, не имеете ввиду свою анатомию
Ну и выложите пару файлов для примера. Как есть и как надо. Правила почитайте, там есть об этом. А перебор файлов в папке здесь выкладывали миллион раз. Не знаю, как уж Вы там чего искали. P.S. И что есть:
Нигде не могу найти пример макроса хотя б одной из данных задач
Хочешь подскажу где в первую очередь стоит искать ответы на подобные вопросы? В редакторе VBE! Порядок такой: Включаешь запись макроса, делаешь одну нужную операцию, выключаешь запись. Alt+F11 = смотришь макрос по данной операции. Там, конечно, много лишнего. Но хоть что-то. И для начала вполне достаточно Перебрать файлы в папке с файлом с макросом не трогая сам файл можно так: [vba]
Код
Sub format_all() Dim wb As Workbook, wi As Workbook Dim Path As String, curfold, FSO, fil Dim strFile As String, strFile2 As String, Path_ As String Set wb = ActiveWorkbook Path_ = wb.Path & "\" Set FSO = CreateObject("scripting.filesystemobject") Set curfold = FSO.GetFolder(Path_) If Not curfold Is Nothing Then For Each fil In curfold.Files If fil.Name <> wb.Name Then If InStr(1, fil.Name, ".xls", vbTextCompare) > 0 Then
'тут набор операций по каждому файлу включая открытие, модификацию, сохранение(или сохранениекак) и закрытие
End If End If Next End If Set FSO = Nothing End Sub
[/vba]
Цитата
Нигде не могу найти пример макроса хотя б одной из данных задач
Хочешь подскажу где в первую очередь стоит искать ответы на подобные вопросы? В редакторе VBE! Порядок такой: Включаешь запись макроса, делаешь одну нужную операцию, выключаешь запись. Alt+F11 = смотришь макрос по данной операции. Там, конечно, много лишнего. Но хоть что-то. И для начала вполне достаточно Перебрать файлы в папке с файлом с макросом не трогая сам файл можно так: [vba]
Код
Sub format_all() Dim wb As Workbook, wi As Workbook Dim Path As String, curfold, FSO, fil Dim strFile As String, strFile2 As String, Path_ As String Set wb = ActiveWorkbook Path_ = wb.Path & "\" Set FSO = CreateObject("scripting.filesystemobject") Set curfold = FSO.GetFolder(Path_) If Not curfold Is Nothing Then For Each fil In curfold.Files If fil.Name <> wb.Name Then If InStr(1, fil.Name, ".xls", vbTextCompare) > 0 Then
'тут набор операций по каждому файлу включая открытие, модификацию, сохранение(или сохранениекак) и закрытие
End If End If Next End If Set FSO = Nothing End Sub
Распакуй в эту папку файл и открой Дождись сообщения "OK" В статусбаре отображается обрабатываемый файл На счёт записи макросов: 2007 пишет плохо лучше 2003 или 2010
Цитата
в одной папке
Распакуй в эту папку файл и открой Дождись сообщения "OK" В статусбаре отображается обрабатываемый файл На счёт записи макросов: 2007 пишет плохо лучше 2003 или 2010alex77755
alex77755, Офигеть как вы меня выручили!! Спасибо огромное. Только начал разбираться, а тут вы снова пишете. Прямо спасли!!! В личку мне напишите карту денег на пивко кину!!!
alex77755, Офигеть как вы меня выручили!! Спасибо огромное. Только начал разбираться, а тут вы снова пишете. Прямо спасли!!! В личку мне напишите карту денег на пивко кину!!!arga
Сообщение отредактировал arga - Четверг, 28.07.2016, 10:17
А не лучше ли все данные по людям хранить на одном листе Excel, выборку для работы пользователя делать на другом листе, а подготовку печатного формата (с отрисованными границами) - на третьем ? И все - в одном файле Excel.
А не лучше ли все данные по людям хранить на одном листе Excel, выборку для работы пользователя делать на другом листе, а подготовку печатного формата (с отрисованными границами) - на третьем ? И все - в одном файле Excel.SGerman
Мудрость приходит со старостью. Но иногда старость приходит одна :)
Вот написал, а потом подумал - а что, если все эти файлы создали не Вы, и они поступают извне, например, из районов, поселков, сел и т.д., где есть "паспортистки" (например) ? Тогда все намного грустнее :( Решение, конечно, есть, но оно много сложнее и сводится к проекту двух и трех звенки. Т.е. опять-таки система "клиент-сервер" с SQL-сервером на одной стороне и клиентским приложением - на другой. Самый лучший вариант тут, конечно же веб-клиент и хороший сервер типа MS SQL Server (свыше 1000 одновременных подключений). Хотя возможно справится и бесплатный MySQL
Без сервера тоже, конечно, можно. Но тогда придется писать на VBA специальную программу для репликаций БД. Но опять-таки лучше делать это в Access
Вот написал, а потом подумал - а что, если все эти файлы создали не Вы, и они поступают извне, например, из районов, поселков, сел и т.д., где есть "паспортистки" (например) ? Тогда все намного грустнее :( Решение, конечно, есть, но оно много сложнее и сводится к проекту двух и трех звенки. Т.е. опять-таки система "клиент-сервер" с SQL-сервером на одной стороне и клиентским приложением - на другой. Самый лучший вариант тут, конечно же веб-клиент и хороший сервер типа MS SQL Server (свыше 1000 одновременных подключений). Хотя возможно справится и бесплатный MySQL
Без сервера тоже, конечно, можно. Но тогда придется писать на VBA специальную программу для репликаций БД. Но опять-таки лучше делать это в AccessSGerman
Мудрость приходит со старостью. Но иногда старость приходит одна :)