Note: The other languages of the website are Google-translated. Back to English

Как сохранить слайсер сводной таблицы с прокруткой листа в Excel?

При работе со сводной таблицей вы можете вставлять срезы для визуальной фильтрации данных в таблице. В этой статье говорится о том, чтобы срез сводной таблицы всегда был видимым при прокрутке рабочего листа.

Продолжайте движение слайсера сводной таблицы с прокруткой листа с помощью кода VBA


Продолжайте движение слайсера сводной таблицы с прокруткой листа с помощью кода VBA

Следующий сценарий VBA может помочь вам сохранить срез сводной таблицы вместе с листом. Пожалуйста, сделайте следующее.

1. нажмите другой + F11 клавиши одновременно, чтобы открыть Microsoft Visual Basic для приложений окно.

2. в Microsoft Visual Basic для приложений окно, дважды щелкните Эта рабочая тетрадь на левой панели проекта, а затем скопируйте и вставьте приведенный ниже код VBA в ThisWorkbook (Код) окно. Смотрите скриншот:

Код VBA: продолжайте движение слайсера сводной таблицы с прокруткой рабочего листа

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Dim ShF As Shape
    Dim ShM As Shape
    'specify a slicer
    Application.ScreenUpdating = False
    Set ShF = ActiveSheet.Shapes("Column1")
    Set ShM = ActiveSheet.Shapes("Column2")
    'change position of the slicer
    With Windows(1).VisibleRange.Cells(1, 1)
        ShF.Top = .Top
        ShF.Left = .Left + 300
        ShM.Top = .Top
        ShM.Left = .Left + 100
    End With
    Application.ScreenUpdating = True
End Sub

Заметки:

1). В коде Column1 и Column2 - это названия срезов.

2). Вы можете указать положение срезов при прокрутке листа в коде.

3). И вы можете добавить в код дополнительные слайсеры или удалить из него по мере необходимости.

3. нажмите другой + Q ключи, чтобы закрыть Microsoft Visual Basic для приложений диалоговое окно окна.

С этого момента указанные срезы будут перемещаться вместе с активной ячейкой при прокрутке листа. Смотрите скриншот:


Статьи по теме:


Лучшие инструменты для работы в офисе

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма ...
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы... Предотвращение дублирования ячеек; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии...
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом ...
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
вкладка kte 201905

Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
Сортировать комментарии по
Комментарии (10)
Оценок пока нет. Оцените первым!
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте,
Спасибо за этот VBA.

Я абсолютно ничего не знаю о VBA и, следовательно, мой вопрос.

Я использовал этот VBA, и у меня возник вопрос.
Как я могу изменить этот VBA, чтобы он работал только для одного листа.

Прямо сейчас у меня есть 8 листов, и каждый раз, когда я перехожу к другому листу, он терпит неудачу и просит меня завершить или отладить.
Я сделал именно так, как показано выше.


Это мой VBA здесь..
Private Sub Workbook_SheetSelectionChange (ByVal Sh как объект, ByVal Target как диапазон)
Дим ШФ как форма
Дим ШМ Ас Шейп
'указать слайсер
Приложение.ScreenUpdating = False
Установите ShF = ActiveSheet.Shapes("Клиент 1")
Установить ShM = ActiveSheet.Shapes("Напоминание 1")
'изменить положение слайсера
С Windows(1).VisibleRange.Cells(1, 1)
ШФ.Верх = .Верх + 2
ШФ.Влево = .Влево + 475
ШМ.Верх = .Верх + 180
ШМ.Влево = .Влево + 475
Конец с
Application.ScreenUpdating = True
End Sub


Пожалуйста помоги.
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте,
Спасибо за этот VBA.

Я абсолютно ничего не знаю о VBA и, следовательно, мой вопрос.

Я использовал этот VBA, и у меня возник вопрос.
Как я могу изменить этот VBA, чтобы он работал только для одного листа.

Прямо сейчас у меня есть 8 листов, и каждый раз, когда я перехожу к другому листу, он терпит неудачу и просит меня завершить или отладить.
Я сделал именно так, как показано выше.


Это мой VBA здесь..
Private Sub Workbook_SheetSelectionChange (ByVal Sh как объект, ByVal Target как диапазон)
Дим ШФ как форма
Дим ШМ Ас Шейп
'указать слайсер
Приложение.ScreenUpdating = False
Установите ShF = ActiveSheet.Shapes("Клиент 1")
Установить ShM = ActiveSheet.Shapes("Напоминание 1")
'изменить положение слайсера
С Windows(1).VisibleRange.Cells(1, 1)
ШФ.Верх = .Верх + 2
ШФ.Влево = .Влево + 475
ШМ.Верх = .Верх + 180
ШМ.Влево = .Влево + 475
Конец с
Application.ScreenUpdating = True
End Sub


Пожалуйста помоги.
Этот комментарий был сведен к минимуму модератором на сайте
Дорогой Джон
Перейдите к рабочему листу, для которого должен работать только код VBA, затем щелкните правой кнопкой мыши вкладку «Лист» и выберите «Просмотреть код» в контекстном меню.
А затем скопируйте и вставьте приведенный ниже код VBA в окно открытия кода. Смотрите скриншот ниже:

Private Sub Worksheet_SelectionChange (ByVal Target As Range)
Дим ШФ как форма
Дим ШМ Ас Шейп
'указать слайсер
Приложение.ScreenUpdating = False
Установить ShF = ActiveSheet.Shapes("Фрукты")
Установить ShM = ActiveSheet.Shapes("Продажа")
'изменить положение слайсера
С Windows(1).VisibleRange.Cells(1, 1)
ШФ.Верх = .Верх
ШФ.Влево = .Влево + 300
ШМ.Верх = .Верх
ШМ.Влево = .Влево + 100
Конец с
Application.ScreenUpdating = True
End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Дорогая Кристалл,

Большое спасибо за код.
Я сделал именно так, как вы сказали, и это работает как шарм.

Действительно ценю это.
Cheers :)
Этот комментарий был сведен к минимуму модератором на сайте
Привет, я обновил свой код, как вы указали. Слайсер больше не прокручивается вместе с окном, однако, если я нажму на новую ячейку, слайсер переместится. Это правильное поведение?
Этот комментарий был сведен к минимуму модератором на сайте
На что указывает первая строка и как ее настроить для нашего слайсера?
Я очень смущен этим практически в каждой строке.
Этот комментарий был сведен к минимуму модератором на сайте
Дорогая Кэти
Я не знаю, полностью ли я понимаю ваш вопрос.
Как я упоминал в примечаниях выше, вам нужно заменить Column1 и Column2 именами ваших слайсеров в коде, чтобы ваш слайсер прокручивался вместе с рабочим листом.
Этот комментарий был сведен к минимуму модератором на сайте
У меня есть 4 слайсера, которые были сгруппированы, выбрав все 4 и щелкнув правой кнопкой мыши, чтобы использовать команду группы.

Можно ли назначить этот VBA группой? Как пометить группу и написать VBA, чтобы распознать ее как единое целое?
Этот комментарий был сведен к минимуму модератором на сайте
Привет Майкл,
Извините, не могу помочь с этим. Спасибо за ваш комментарий.
Этот комментарий был сведен к минимуму модератором на сайте
Итак, в заголовке написано «Как заставить слайсер сводной таблицы двигаться вместе с рабочим листом». Прокрутка В Excel?», но этот код VBA делает это только для текущей выбранной ячейки, как мы можем сделать это для прокрутки книги, а не только выбранной ячейки?
Здесь еще нет комментариев
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места

Подписывайтесь на Нас

Copyright © 2009 - www.extendoffice.ком. | Все права защищены. Питаться от ExtendOffice, | Карта сайта
Microsoft и логотип Office являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и / или других странах.
Защищено Sectigo SSL