Макрос для обновления сводной. Ссылка на ячейку с датой
ex
Дата: Воскресенье, 31.07.2022, 23:31 |
Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 32
Репутация:
0
±
Замечаний:
20% ±
Excel 2016
Добрый день! Есть отчет с большим кол-во сводных таблиц, который я регулярно перестраиваю. Соответственно, мне надо зайти в фильтр каждой сводной и поменять дату на новую. Решил попробовать делать это макросом. Записал его через функцию "Запись макроса" (пример для одной сводной ниже, в данном случае я меняю дату на 31.07.22). Мне бы хотелось, чтобы новую дату макрос брал из ячейки А1 на листе "Даты", этот лист находится в той же книге. Т.е. мне не надо будет вносить изменения в макрос, а просто потребуется поменять дату в ячейке A1. Подскажите, пожалуйста, как это прописать в макросе. Заранее спасибо! Файл не прикладываю, поскольку сводная из отчета все равно не будет работать без подключения. [vba]Код
Sub Макрос5() ' ' Макрос5 Макрос ' ' ActiveSheet.PivotTables("Сводная таблица4").PivotFields( _ "[DimDate].[Year-Month-Date].[Year]").VisibleItemsList = Array("") ActiveSheet.PivotTables("Сводная таблица4").PivotFields( _ "[DimDate].[Year-Month-Date].[Month]").VisibleItemsList = Array("") ActiveSheet.PivotTables("Сводная таблица4").PivotFields( _ "[DimDate].[Year-Month-Date].[Date]").VisibleItemsList = Array( _ "[DimDate].[Year-Month-Date].[Date].&[2022-07-31T00:00:00]") End Sub
[/vba]
Добрый день! Есть отчет с большим кол-во сводных таблиц, который я регулярно перестраиваю. Соответственно, мне надо зайти в фильтр каждой сводной и поменять дату на новую. Решил попробовать делать это макросом. Записал его через функцию "Запись макроса" (пример для одной сводной ниже, в данном случае я меняю дату на 31.07.22). Мне бы хотелось, чтобы новую дату макрос брал из ячейки А1 на листе "Даты", этот лист находится в той же книге. Т.е. мне не надо будет вносить изменения в макрос, а просто потребуется поменять дату в ячейке A1. Подскажите, пожалуйста, как это прописать в макросе. Заранее спасибо! Файл не прикладываю, поскольку сводная из отчета все равно не будет работать без подключения. [vba]Код
Sub Макрос5() ' ' Макрос5 Макрос ' ' ActiveSheet.PivotTables("Сводная таблица4").PivotFields( _ "[DimDate].[Year-Month-Date].[Year]").VisibleItemsList = Array("") ActiveSheet.PivotTables("Сводная таблица4").PivotFields( _ "[DimDate].[Year-Month-Date].[Month]").VisibleItemsList = Array("") ActiveSheet.PivotTables("Сводная таблица4").PivotFields( _ "[DimDate].[Year-Month-Date].[Date]").VisibleItemsList = Array( _ "[DimDate].[Year-Month-Date].[Date].&[2022-07-31T00:00:00]") End Sub
[/vba] ex
Ответить
Сообщение Добрый день! Есть отчет с большим кол-во сводных таблиц, который я регулярно перестраиваю. Соответственно, мне надо зайти в фильтр каждой сводной и поменять дату на новую. Решил попробовать делать это макросом. Записал его через функцию "Запись макроса" (пример для одной сводной ниже, в данном случае я меняю дату на 31.07.22). Мне бы хотелось, чтобы новую дату макрос брал из ячейки А1 на листе "Даты", этот лист находится в той же книге. Т.е. мне не надо будет вносить изменения в макрос, а просто потребуется поменять дату в ячейке A1. Подскажите, пожалуйста, как это прописать в макросе. Заранее спасибо! Файл не прикладываю, поскольку сводная из отчета все равно не будет работать без подключения. [vba]Код
Sub Макрос5() ' ' Макрос5 Макрос ' ' ActiveSheet.PivotTables("Сводная таблица4").PivotFields( _ "[DimDate].[Year-Month-Date].[Year]").VisibleItemsList = Array("") ActiveSheet.PivotTables("Сводная таблица4").PivotFields( _ "[DimDate].[Year-Month-Date].[Month]").VisibleItemsList = Array("") ActiveSheet.PivotTables("Сводная таблица4").PivotFields( _ "[DimDate].[Year-Month-Date].[Date]").VisibleItemsList = Array( _ "[DimDate].[Year-Month-Date].[Date].&[2022-07-31T00:00:00]") End Sub
[/vba] Автор - ex Дата добавления - 31.07.2022 в 23:31
Pelena
Дата: Понедельник, 01.08.2022, 07:24 |
Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19403
Репутация:
4555
±
Замечаний:
±
Excel 365 & Mac Excel
Здравствуйте. Попробуйте эту часть[vba]Код
"[DimDate].[Year-Month-Date].[Date].&[2022-07-31T00:00:00]"
[/vba]записать [vba]Код
"[DimDate].[Year-Month-Date].[Date].&[" & Sheets("Даты").Range("A1") & "T00:00:00]"
[/vba]
Здравствуйте. Попробуйте эту часть[vba]Код
"[DimDate].[Year-Month-Date].[Date].&[2022-07-31T00:00:00]"
[/vba]записать [vba]Код
"[DimDate].[Year-Month-Date].[Date].&[" & Sheets("Даты").Range("A1") & "T00:00:00]"
[/vba] Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение Здравствуйте. Попробуйте эту часть[vba]Код
"[DimDate].[Year-Month-Date].[Date].&[2022-07-31T00:00:00]"
[/vba]записать [vba]Код
"[DimDate].[Year-Month-Date].[Date].&[" & Sheets("Даты").Range("A1") & "T00:00:00]"
[/vba] Автор - Pelena Дата добавления - 01.08.2022 в 07:24
ex
Дата: Понедельник, 08.08.2022, 11:25 |
Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 32
Репутация:
0
±
Замечаний:
20% ±
Excel 2016
Добрый день! Попробовал вышеприведенный код, теперь макрос не работает и выдает ошибку: Run-time error ' 1004': Невозможно получить свойство PivotTables класса Worksheet Как я понимаю, тут дело в формате даты, на которую ссылается макрос. Я пробовал и текстовый формат, и дата, и общий - не помогает.
Добрый день! Попробовал вышеприведенный код, теперь макрос не работает и выдает ошибку: Run-time error ' 1004': Невозможно получить свойство PivotTables класса Worksheet Как я понимаю, тут дело в формате даты, на которую ссылается макрос. Я пробовал и текстовый формат, и дата, и общий - не помогает. ex
Ответить
Сообщение Добрый день! Попробовал вышеприведенный код, теперь макрос не работает и выдает ошибку: Run-time error ' 1004': Невозможно получить свойство PivotTables класса Worksheet Как я понимаю, тут дело в формате даты, на которую ссылается макрос. Я пробовал и текстовый формат, и дата, и общий - не помогает. Автор - ex Дата добавления - 08.08.2022 в 11:25
RAN
Дата: Понедельник, 08.08.2022, 12:51 |
Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
У вас есть выбор 1. Сделать пример, который будет работать без подключения 2. Продолжать понимать дальше
У вас есть выбор 1. Сделать пример, который будет работать без подключения 2. Продолжать понимать дальше RAN
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение У вас есть выбор 1. Сделать пример, который будет работать без подключения 2. Продолжать понимать дальше Автор - RAN Дата добавления - 08.08.2022 в 12:51