Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Не работает макрос для добавления общих итого в сводную таблицу
 

Доброго времени суток.
С толкнулся с такой проблемой.

У меня Excel 2013.

Я создал кнопку которая должна включать/выключать отображение общих итогов строк в сводной таблице.
Подключил к ней доработаный макрос созданный макрорекордером.

Код
Sub swColumnGrand()
Dim Check As Boolean
Check = ActiveSheet.PivotTables("СводнаяТаблица2").ColumnGrand
'MsgBox (Check)
If Check Then
    ActiveSheet.PivotTables("СводнаяТаблица2").ColumnGrand = False 'Эта строка была создана макрорекордером когда руками включал/выключал итоги
        Else:
    ActiveSheet.PivotTables("СводнаяТаблица2").ColumnGrand = True
End If End Sub

В итоге при запуске макроса с таблицей ничего не происходит. Ошибку также не выдает.
Подскажите пожалуйста что я делаю не так ?
Изменено: Troglodit - 26 Июл 2017 17:51:03
 
у меня работает. может просто нечего добавлять в общие итоги?
а записать, кстати можно и короче:
Код
Sub swColumnGrand()
    With ActiveSheet.PivotTables("СводнаяТаблица2")
        .ColumnGrand = Not .ColumnGrand
    End With
End Sub
 
Спасибо за ответ.
Да я уже по разному пробовал записать макрос, выложил последний вариант. Без результата.
Наверно у меня что то с настройками Екселя, но не знаю что, раз у Вас работает, а у меня нет.
Вкладываю пример. Он у меня не работает. Может сможете подсказть ?
 
ну так правильно - вы пытаетесь в общих итогах увидеть сумму трех вычисляемых столбцов. Сводная так не работает. Если, например, Значения из строк переместить в столбцы, а Название - из столбцов в строки, тогда и ваш макрос будет работать
 
Так в примере ж работет. Но только когда руками в свойствах сводной таблицы ставлю галочки.
А ежели макросом - то результат нет :(
Изменено: Troglodit - 26 Июл 2017 18:01:39
 
Troglodit, а вы случайно ColumnGrand и RowGrand не путаете? Попробуйте так - если работает, то дело в этом
Код
Sub swColumnGrand()
    With ActiveSheet.PivotTables("СводнаяТаблица2")
        .ColumnGrand = Not .ColumnGrand
        .RowGrand = Not .RowGrand
    End With
End Sub

 
В общем я понял. Из-за переноса значений в область строк нужно было итог по строкам делать, а не столбцам. Хотя макрорекордер почему-то записал столбцы :)
Переписал код, все работает. Спасибо за внимание!
Код
With ActiveSheet.PivotTables("СводнаяТаблица2")
'.ColumnGrand = Not .ColumnGrand 'Неправильно
.RowGrand = Not .RowGrand 'Правильно
End With

Цитата
webley написал: вы случайно ColumnGrand и RowGrand не путаете?
Путаю.
Изменено: Troglodit - 26 Июл 2017 18:12:20
Страницы: 1
Читают тему (гостей: 1)
Наверх