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

Вход

Регистрация

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

 

= Мир MS Excel/Соединение двух макросов excel в один - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Соединение двух макросов excel в один (Макросы/Sub)
Соединение двух макросов excel в один
nova4 Дата: Пятница, 12.09.2014, 09:03 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Не получается соединить два макроса в один.
Нужно, чтобы после запуска макроса все файлы excel в папке открывались, пересчитывались и закрывались с сохранением.

макрос №1:
[vba]
Код
Sub q1()
Папка = ThisWorkbook.Path & "\"
Имя = Dir(Папка & "*.xls*")
Do While Имя <> ""
If Имя <> ThisWorkbook.Name Then Workbooks.Open Filename:=Папка & Имя
Имя = Dir
Loop
End Sub
[/vba]

макрос №2:
[vba]
Код
Sub q2()
' закрываем все книги, кроме текущей (активной), С СОХРАНЕНИЕМ изменений
Dim wb As Workbook: Application.ScreenUpdating = False
For Each wb In Workbooks ' перебираем все открытые книги
If wb.Windows(1).Visible = True And (Not wb Is ActiveWorkbook) Then
' закрываем с сохранением только изменённые файлы
wb.Close (Not wb.Saved) ' ранее сохранённые файлы просто закрываются
End If
Next wb
End Sub
[/vba]
 
Ответить
СообщениеНе получается соединить два макроса в один.
Нужно, чтобы после запуска макроса все файлы excel в папке открывались, пересчитывались и закрывались с сохранением.

макрос №1:
[vba]
Код
Sub q1()
Папка = ThisWorkbook.Path & "\"
Имя = Dir(Папка & "*.xls*")
Do While Имя <> ""
If Имя <> ThisWorkbook.Name Then Workbooks.Open Filename:=Папка & Имя
Имя = Dir
Loop
End Sub
[/vba]

макрос №2:
[vba]
Код
Sub q2()
' закрываем все книги, кроме текущей (активной), С СОХРАНЕНИЕМ изменений
Dim wb As Workbook: Application.ScreenUpdating = False
For Each wb In Workbooks ' перебираем все открытые книги
If wb.Windows(1).Visible = True And (Not wb Is ActiveWorkbook) Then
' закрываем с сохранением только изменённые файлы
wb.Close (Not wb.Saved) ' ранее сохранённые файлы просто закрываются
End If
Next wb
End Sub
[/vba]

Автор - nova4
Дата добавления - 12.09.2014 в 09:03
RAN Дата: Пятница, 12.09.2014, 09:19 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
Sub q1()
     Dim wb As Workbook
     Application.ScreenUpdating = False
     Папка = ThisWorkbook.Path & "\"
     Имя = Dir(Папка & "*.xls*")
     Do While Имя <> ""
         If Имя <> ThisWorkbook.Name Then
             Set wb = Workbooks.Open(Filename:=Папка & Имя)
             wb.Close True
         End If
         Имя = Dir
     Loop
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
Sub q1()
     Dim wb As Workbook
     Application.ScreenUpdating = False
     Папка = ThisWorkbook.Path & "\"
     Имя = Dir(Папка & "*.xls*")
     Do While Имя <> ""
         If Имя <> ThisWorkbook.Name Then
             Set wb = Workbooks.Open(Filename:=Папка & Имя)
             wb.Close True
         End If
         Имя = Dir
     Loop
End Sub
[/vba]

Автор - RAN
Дата добавления - 12.09.2014 в 09:19
nova4 Дата: Пятница, 12.09.2014, 10:36 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо!
Я поняла, что совершенно не так пыталась объединить.
Но как сделать, чтобы файлы начали закрываться и сохраняться после того, как они ВСЕ будут открыты?
И как сделать, чтобы обновление связей на другие файлы (выскакивает запрос) происходило "по-умолчанию"?
 
Ответить
СообщениеСпасибо!
Я поняла, что совершенно не так пыталась объединить.
Но как сделать, чтобы файлы начали закрываться и сохраняться после того, как они ВСЕ будут открыты?
И как сделать, чтобы обновление связей на другие файлы (выскакивает запрос) происходило "по-умолчанию"?

Автор - nova4
Дата добавления - 12.09.2014 в 10:36
The_Prist Дата: Пятница, 12.09.2014, 11:47 | Сообщение № 4
Группа: Друзья
Ранг: Участник
Сообщений: 85
Репутация: 22 ±
Замечаний: 0% ±

2010
[vba]
Код
Sub q1()
     Dim wb As Workbook
     Папка = ThisWorkbook.Path & "\"
     Имя = Dir(Папка & "*.xls*")
     Application.ScreenUpdating = False
     Do While Имя <> ""
         If Имя <> ThisWorkbook.Name Then Workbooks.Open Filename:=Папка & Имя, UpdateLinks:=True
         Имя = Dir
     Loop

     For Each wb In Workbooks    ' перебираем все открытые книги
         If wb.Windows(1).Visible = True And (Not wb Is ActiveWorkbook) Then
             ' закрываем с сохранением только изменённые файлы
             wb.Close (Not wb.Saved)    ' ранее сохранённые файлы просто закрываются
         End If
     Next wb
End Sub
[/vba]


Errare humanum est, stultum est in errore perseverare
 
Ответить
Сообщение[vba]
Код
Sub q1()
     Dim wb As Workbook
     Папка = ThisWorkbook.Path & "\"
     Имя = Dir(Папка & "*.xls*")
     Application.ScreenUpdating = False
     Do While Имя <> ""
         If Имя <> ThisWorkbook.Name Then Workbooks.Open Filename:=Папка & Имя, UpdateLinks:=True
         Имя = Dir
     Loop

     For Each wb In Workbooks    ' перебираем все открытые книги
         If wb.Windows(1).Visible = True And (Not wb Is ActiveWorkbook) Then
             ' закрываем с сохранением только изменённые файлы
             wb.Close (Not wb.Saved)    ' ранее сохранённые файлы просто закрываются
         End If
     Next wb
End Sub
[/vba]

Автор - The_Prist
Дата добавления - 12.09.2014 в 11:47
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Соединение двух макросов excel в один (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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