Страницы: 1
RSS
Во всех листах всех открытых книг искать сводные таблицы
 
Код
Sub dfdf()
Dim wb As Workbook
Dim sh As Worksheet

For Each wb In Application.Workbooks
wb.Activate
MsgBox ActiveWorkbook.Name
For Each sh In ActiveWorkbook.Worksheets
sh.Activate
If ActiveSheet.PivotTables.Count > 0 Then
MsgBox "Есть сводная"

End If
Next sh
Next wb
End Sub
Господа, добрый день. Помогите, пожалуйста. Я уже всё перебрал. Надежда на вас. Почему-то не работает код с For Each. Перебирает листы, но не перебирает книги. Цель перебрать все листы в открытых книгах, найти там сводные таблицы и, если сводная есть, применить к ней код настройки (код настройки я не прописал).
Даже в этом виде код не работает.
 
Код
For Each wb In Application.Workbooks
  For Each sh In wb.Worksheets
     If sh.PivotTables.Count > 0 Then Debug.Print wb.name & "  " & sh.name
  Next sh
Next wb
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Код
Sub Tr()
Dim wb As Workbook
For Each wb In Application.Workbooks
    wb.Activate
    MsgBox ActiveWorkbook.Name
Next wb

End Sub
Даже так программа не перебирает открытые книги. В чём может быть дело?
 
Какая-то дичь происходит. Программа не видит только 1 книгу, которую я выгружаю из инструмента MS Access (вероятно, из этой программы). Если эту выгруженную книгу сохранить на жёсткий диск, а потом открыть, то всё работает нормально. Кто-нибудь знает, что это может быть? Буду очень признателен за ответ.
 
Цитата
Neurosurgeon написал:
Кто-нибудь знает, что это может быть?
я знаю. Проблема в этом:
Цитата
Neurosurgeon написал:
я выгружаю из инструмента MS Access
Скорее всего, если заглянуть в диспетчер задач в процессы, то обнаружится два процесса EXCEL.EXE, т.к. Access при выгрузке создает новый экземпляр Excel, в котором и открывает созданную книгу.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Neurosurgeon написал:
Даже так программа не перебирает открытые книги. В чём может быть дело?
lдело может быть в том, что открыта ТОЛЬКО ОДНА книга (с макросом). при одной открытой книге перебирать нечего((

название темы:
во всех листах всех открытых книг поискать сводные
Изменено: Ігор Гончаренко - 06.07.2021 18:23:45
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Дополнение к #6. Добавьте в начало своего макроса оператор

Код
Stop

После того, как программа остановится, посмотрите, сколько книг видно в дереве проектов?
Владимир
 
Цитата
Neurosurgeon написал:
Какая-то дичь происходит.
если что-то в макросе работает не так, как вы ожидали (как хотелось бы) то скорее всего именно в макросе какая-то дичь
такая же как утверждение
Цитата
Neurosurgeon написал:
Не работает For Each
правильно фраза звучит так: почему в моем макросе не сработал For Each
Изменено: Ігор Гончаренко - 10.07.2021 07:45:41
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Спасибо. Буду смотреть.
Страницы: 1
Наверх