Доброго времени суток! Помогите пожалуйста!!!! Имеется группа экселевских файлов (около 400), данные из которых сводятся в отдельном файле. Данные в каждом файле зависят от даты, которая забивается в сводном файле, и на которую ссылаются эти отдельные файлы. Как сделать так, чтобы дата (или ссылка) в тих файлах обновлялась автоматически без открытия файла??? Или, может, есть какая-то программка, которая бы запускала обновление этих файлов в определенное время?
Доброго времени суток! Помогите пожалуйста!!!! Имеется группа экселевских файлов (около 400), данные из которых сводятся в отдельном файле. Данные в каждом файле зависят от даты, которая забивается в сводном файле, и на которую ссылаются эти отдельные файлы. Как сделать так, чтобы дата (или ссылка) в тих файлах обновлялась автоматически без открытия файла??? Или, может, есть какая-то программка, которая бы запускала обновление этих файлов в определенное время?ELLE
============================================================== Применение макроса ко всем файлам из папки Папка = "полный путь папки"
'------------ Excel-файлы в этой папке ------------------ Имя = Dir(Папка & "*.xls*") Do While Имя <> "" Workbooks.Open FileName:=Папка & Имя , UpdateLinks:=True 'здесь Ваш макрос делает свое грязное дело ActiveWorkbook.Close SaveChanges:=True Имя = Dir Loop
With Application 'операции с приложением/отключаем для повышения скорости работы макроса .ScreenUpdating = False 'обновление экрана .DisplayAlerts = False 'вывод системных сообщений
Папка = "полный путь папки" '------------ Excel-файлы в этой папке ------------------ Имя = Dir(Папка & "*.xls*") Do While Имя <> "" With .Workbooks.Open _ (Filename:=Папка & Имя, UpdateLinks:=True) 'здесь Ваш макрос делает свое грязное дело .Close SaveChanges:=True End With Имя = Dir Loop
.ScreenUpdating = True 'обновление экрана .DisplayAlerts = True 'вывод системных сообщений End With End Sub
[/vba]
Нашёл в закромах - откуда взял, не записано...
[vba]
Code
============================================================== Применение макроса ко всем файлам из папки Папка = "полный путь папки"
'------------ Excel-файлы в этой папке ------------------ Имя = Dir(Папка & "*.xls*") Do While Имя <> "" Workbooks.Open FileName:=Папка & Имя , UpdateLinks:=True 'здесь Ваш макрос делает свое грязное дело ActiveWorkbook.Close SaveChanges:=True Имя = Dir Loop
With Application 'операции с приложением/отключаем для повышения скорости работы макроса .ScreenUpdating = False 'обновление экрана .DisplayAlerts = False 'вывод системных сообщений
Папка = "полный путь папки" '------------ Excel-файлы в этой папке ------------------ Имя = Dir(Папка & "*.xls*") Do While Имя <> "" With .Workbooks.Open _ (Filename:=Папка & Имя, UpdateLinks:=True) 'здесь Ваш макрос делает свое грязное дело .Close SaveChanges:=True End With Имя = Dir Loop
.ScreenUpdating = True 'обновление экрана .DisplayAlerts = True 'вывод системных сообщений End With End Sub
Hugo, спасибо большое! Только не могли бы Вы еще объяснить как создать макрос более подробно. что за чем. ищу в сети, не могу найти. не так много времени. заранее спасибо!
Hugo, спасибо большое! Только не могли бы Вы еще объяснить как создать макрос более подробно. что за чем. ищу в сети, не могу найти. не так много времени. заранее спасибо!ELLE
Освоите простой код - можете попробовать этот (но сперва на тестовых файлах, или на копии рабочих в спецпапке). Путь к папке пропишите вместо Папка = "полный путь папки" например Папка = "C:\TMP\спецпапка\"
Освоите простой код - можете попробовать этот (но сперва на тестовых файлах, или на копии рабочих в спецпапке). Путь к папке пропишите вместо Папка = "полный путь папки" например Папка = "C:\TMP\спецпапка\"Hugo
Можете ли вы пояснить поподробнее код данный выше? [vba]
Код
Sub update() With Application 'операции с приложением/отключаем для повышения скорости работы макроса .ScreenUpdating = False 'обновление экрана .DisplayAlerts = False 'вывод системных сообщений
[/vba] Папка(имеется ввиду что надо прописать имя папки ?)= "полный путь папки" '------------ Excel-файлы в этой папке ------------------ Имя (о каком имени тут идет речь?)= Dir(Папка & "*.xls*")(имя папки & "*.xls*"?) Do While Имя (каком имени тут идет речь?) <> "" [vba]
Код
With .Workbooks.Open _ (Filename:=Папка & Имя, UpdateLinks:=True) 'здесь Ваш макрос делает свое грязное дело .Close SaveChanges:=True End With Имя = Dir Loop .ScreenUpdating = True 'обновление экрана .DisplayAlerts = True 'вывод системных сообщений End With End Sub
[/vba]
Извините за такие вопросы, но это единственное место где я нашла код на обновление файлов без открытия и так как я совсем новичок в работе с макросами не могу понять как его применить.
Спасибо за помощь!
Здравствуйте,
Можете ли вы пояснить поподробнее код данный выше? [vba]
Код
Sub update() With Application 'операции с приложением/отключаем для повышения скорости работы макроса .ScreenUpdating = False 'обновление экрана .DisplayAlerts = False 'вывод системных сообщений
[/vba] Папка(имеется ввиду что надо прописать имя папки ?)= "полный путь папки" '------------ Excel-файлы в этой папке ------------------ Имя (о каком имени тут идет речь?)= Dir(Папка & "*.xls*")(имя папки & "*.xls*"?) Do While Имя (каком имени тут идет речь?) <> "" [vba]
Код
With .Workbooks.Open _ (Filename:=Папка & Имя, UpdateLinks:=True) 'здесь Ваш макрос делает свое грязное дело .Close SaveChanges:=True End With Имя = Dir Loop .ScreenUpdating = True 'обновление экрана .DisplayAlerts = True 'вывод системных сообщений End With End Sub
[/vba]
Извините за такие вопросы, но это единственное место где я нашла код на обновление файлов без открытия и так как я совсем новичок в работе с макросами не могу понять как его применить.
И что значит Цитата Margot, 09.10.2017 в 16:54, в сообщении № 8 ( писал(а)): пояснить поподробнее код ? -
Имеется ввиду что нужно писать на месте слов "Папка" и "Имя":
Я написала этот код таким образом,что подставила вместо слова "папка" имя папки,где находятся файлы, которые нужно обновить (macrosMAJ) и вместо "Имя" - имя файла в котором изменяются данные (origine):
[vba]
Код
Sub update() With Application .ScreenUpdating = False .DisplayAlerts = False macrosMAJ = "C:\Users\...\macrosMAJ"
origine = Dir(macrosMAJ & "*.xls*") Do While macrosMAJ <> "" With .Workbooks.Open _ (Filename:=macrosMAJ & origine, UpdateLinks:=True) .Close SaveChanges:=True End With origine = Dir Loop .ScreenUpdating = True .DisplayAlerts = True End With End Sub
[/vba]
Но код не работает и подчеркивает ошибку в строке :
[vba]
Код
With .Workbooks.Open _ (Filename:=macrosMAJ & origine, UpdateLinks:=True)
[/vba]
Цитата
И что значит Цитата Margot, 09.10.2017 в 16:54, в сообщении № 8 ( писал(а)): пояснить поподробнее код ? -
Имеется ввиду что нужно писать на месте слов "Папка" и "Имя":
Я написала этот код таким образом,что подставила вместо слова "папка" имя папки,где находятся файлы, которые нужно обновить (macrosMAJ) и вместо "Имя" - имя файла в котором изменяются данные (origine):
[vba]
Код
Sub update() With Application .ScreenUpdating = False .DisplayAlerts = False macrosMAJ = "C:\Users\...\macrosMAJ"
origine = Dir(macrosMAJ & "*.xls*") Do While macrosMAJ <> "" With .Workbooks.Open _ (Filename:=macrosMAJ & origine, UpdateLinks:=True) .Close SaveChanges:=True End With origine = Dir Loop .ScreenUpdating = True .DisplayAlerts = True End With End Sub
[/vba]
Но код не работает и подчеркивает ошибку в строке :
[vba]
Код
With .Workbooks.Open _ (Filename:=macrosMAJ & origine, UpdateLinks:=True)
А теперь я Вас огорчу - видите в макросе строчку [vba]
Код
.Workbooks.Open
[/vba]? Так вот, эта строка ОТКРЫВАЕТ файл
Ну и ответы на Ваши вопросы - 1. нужно присвоить переменной "папка" значение полного пути к той папке, где лежит файл. Примерно вот так [vba]
Код
Папка = "c:\Users\Моя\Прочее\Для_Excel\"
[/vba] 2. [vba]
Код
Имя = Dir(Папка & "*.xls*")
[/vba] "Имя" - это переменная. С тем же успехом можно было назвать "Imya". Кстати, как и "папка". Просто автор макроса посчитал, что так будет понятнее
А теперь я Вас огорчу - видите в макросе строчку [vba]
Код
.Workbooks.Open
[/vba]? Так вот, эта строка ОТКРЫВАЕТ файл
Ну и ответы на Ваши вопросы - 1. нужно присвоить переменной "папка" значение полного пути к той папке, где лежит файл. Примерно вот так [vba]
Код
Папка = "c:\Users\Моя\Прочее\Для_Excel\"
[/vba] 2. [vba]
Код
Имя = Dir(Папка & "*.xls*")
[/vba] "Имя" - это переменная. С тем же успехом можно было назвать "Imya". Кстати, как и "папка". Просто автор макроса посчитал, что так будет понятнее_Boroda_
Переделала, но все равно строчка с "With Workbooks.Open Filename" подчеркивается :
[vba]
Код
Sub update() With Application .ScreenUpdating = False .DisplayAlerts = False macrosMAJ = "C:\Users\E500892\...\macrosMAJ"
origine = Dir(macrosMAJ & "*.xls*") Do While origine <> "" With Workbooks.Open Filename:=macrosMAJ & origine, UpdateLinks:=True .Close SaveChanges:=True End With origine = Dir Loop .ScreenUpdating = True .DisplayAlerts = True End With End Sub
[/vba]
Спасибо за ответ!Теперь это понятно.
Переделала, но все равно строчка с "With Workbooks.Open Filename" подчеркивается :
[vba]
Код
Sub update() With Application .ScreenUpdating = False .DisplayAlerts = False macrosMAJ = "C:\Users\E500892\...\macrosMAJ"
origine = Dir(macrosMAJ & "*.xls*") Do While origine <> "" With Workbooks.Open Filename:=macrosMAJ & origine, UpdateLinks:=True .Close SaveChanges:=True End With origine = Dir Loop .ScreenUpdating = True .DisplayAlerts = True End With End Sub
Исправила как вы написали, но опять не работает и та же строчка с "With Workbooks.Open Filename" подчеркнута:
[vba]
Код
Sub update() With Application .ScreenUpdating = False .DisplayAlerts = False macrosMAJ = "C:\Users\E500892\Desktop\Fichier de SUIVI\MBAV Barèmes\macrosMAJ\"
origine = Dir(macrosMAJ & "*.xls*") Do While origine <> "" With Workbooks.Open Filename:=macrosMAJ & origine, UpdateLinks:=True .Close SaveChanges:=True End With origine = Dir Loop .ScreenUpdating = True .DisplayAlerts = True End With End Sub
[/vba]
Исправила как вы написали, но опять не работает и та же строчка с "With Workbooks.Open Filename" подчеркнута:
[vba]
Код
Sub update() With Application .ScreenUpdating = False .DisplayAlerts = False macrosMAJ = "C:\Users\E500892\Desktop\Fichier de SUIVI\MBAV Barèmes\macrosMAJ\"
origine = Dir(macrosMAJ & "*.xls*") Do While origine <> "" With Workbooks.Open Filename:=macrosMAJ & origine, UpdateLinks:=True .Close SaveChanges:=True End With origine = Dir Loop .ScreenUpdating = True .DisplayAlerts = True End With End Sub