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

Как всегда держать диаграмму в поле зрения при прокрутке в Excel?

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

документ держать диаграмму в поле зрения 1
стрелка вниз
документ держать диаграмму в поле зрения 2

Всегда держите карту в поле зрения


стрелка синий правый пузырь Всегда держите карту в поле зрения

Чтобы сохранить диаграмму в поле зрения при прокрутке листа, вы можете применить приведенный ниже код VBA для ее решения.

1. Щелкните правой кнопкой мыши вкладку листа, на которой диаграмма должна оставаться видимой, и щелкните Просмотреть код сформировать контекстное меню. Смотрите скриншот:
документ держать диаграмму в поле зрения 3

2. Во всплывающем Microsoft Visual Basic для приложений окна вставьте код ниже в пустой скрипт.

VBA: всегда держать диаграмму в поле зрения

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'UpdatebyExtendoffice20161111
    Dim CPos As Double
    Application.ScreenUpdating = False
    CPos = ActiveWindow.ScrollRow * ActiveCell.RowHeight
    ActiveSheet.ChartObjects("Chart 2").Activate
    ActiveSheet.Shapes("Chart 2").Top = CPos
    ActiveWindow.Visible = False
    Application.ScreenUpdating = True
End Sub

документ держать диаграмму в поле зрения 5

3. Сохраните и закройте диалоговое окно, после чего диаграмма будет перемещаться вниз или вверх при нажатии на любую ячейку.
документ держать диаграмму в поле зрения 6

Ноты:

(1) В коде VBA Chart 2 - это имя диаграммы, которое вы хотите держать в поле зрения, вы можете изменить его по своему усмотрению.

(2) Этот VBA не всегда может держать в поле зрения группу диаграмм.


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

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

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

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

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
Сортировать комментарии по
Комментарии (15)
Номинальный 4.75 из 5 · рейтинги 2
Этот комментарий был сведен к минимуму модератором на сайте
Это было хорошо, но я бы хотел, чтобы он просто двигался с помощью колеса прокрутки, как строки заголовков. Также, если я хочу выбрать ячейку, это занимает два клика. Первый щелчок перемещает диаграмму, но также выбирает диаграмму, поэтому мне нужно щелкнуть еще раз, чтобы выбрать ячейку.
Этот комментарий был сведен к минимуму модератором на сайте
Я добавил «activecell.select» в последнюю строку этого кода, и это устранило проблему двойного щелчка. Он автоматически выберет последнюю активную ячейку, по которой вы щелкнули, чтобы переместить диаграмму. Надеюсь это поможет.
Этот комментарий был сведен к минимуму модератором на сайте
ЭТО ТО, ЧТО МНЕ НУЖНО! ЗОЛОТОЙ!
Этот комментарий был сведен к минимуму модератором на сайте
Этот макрос сделал именно то, что я хотел. Однако это создало еще одну проблему, которую я задавался вопросом, есть ли у вас решение.

Пока этот макрос активен, я не могу выбирать ячейки для других целей, таких как их форматирование или объединение. Нажмите и перетащите, Shift или Ctrl не работают, чтобы выбрать группу ячеек. Я могу выбрать только одну ячейку, на которую я нажал. Я часто хочу изменить форматирование (фон, заполнить формулу и т. д.). Единственный способ сделать это — удалить макрос, сохранить, внести изменения в форматирование, вставить макрос обратно и сохранить.

Есть ли более простой способ сделать это? Возможно:

1. (предпочтительно) Простое нажатие клавиши, которое временно отключает макрос, а затем снова включает его.

2. В макрос добавлен код, позволяющий выбирать группу ячеек.

Деннис
Этот комментарий был сведен к минимуму модератором на сайте
Есть ли аналогичная формула, которую можно построить для Google Sheets?
Этот комментарий был сведен к минимуму модератором на сайте
Есть ли способ ограничить, насколько высоко на листе будет перемещаться диаграмма? Я не хочу, чтобы он прикреплялся выше строки 8
Этот комментарий был сведен к минимуму модератором на сайте
Hola muchas gracias por el código, utilizando este código ¿Hay alguna manera de limitar Qué tan alto en la hoja se reubicará el grafico? por ejemplo, не quiero que se coloque encima de la fila 9. Ayuda por пользу.
Номинальный 5 из 5
Этот комментарий был сведен к минимуму модератором на сайте
могу ли я использовать Kutools для автоматического использования этого VBA для своих диаграмм ??
Этот комментарий был сведен к минимуму модератором на сайте
Извините, Wangnuli, Kutools пока не поддерживает это.
Этот комментарий был сведен к минимуму модератором на сайте
Может ли кто-нибудь помочь. когда я следую этим шагам


Private Sub Worksheet_SelectionChange (ByVal Target As Range)
'ОбновитьExtendoffice20161111
Dim CPos как двойной
Приложение.ScreenUpdating = False
CPos = ActiveWindow.ScrollRow * ActiveCell.RowHeight
ActiveSheet.ChartObjects("Диаграмма 2").Активировать
ActiveSheet.Shapes("Диаграмма 2").Top = CPos
ActiveWindow.Visible = Ложь
Application.ScreenUpdating = True
End Sub


я получаю следующую ошибку

Ошибка выполнения "-2147024809 (80070057)":
Товар с указанным названием не найден

когда я отлаживаю
ActiveSheet.ChartObjects("Диаграмма 2").Активировать
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Христо, тебе нужно изменить имя диаграммы "Диаграмма 2" на настоящее имя твоей диаграммы в скрипте. Вы можете нажать на диаграмму и увидеть ее имя в поле имени. Смотрите скриншот:
https://www.extendoffice.com/images/stories/comments/sun-comment/do_chart_name.png
Этот комментарий был сведен к минимуму модератором на сайте
Да, спасибо. после того, как я задал вопрос, я понял, что название моей диаграммы было неправильным
благодаря

пс.
Вы, возможно, знаете, как я могу сделать так, чтобы диаграмма оставалась в поле зрения, когда я прокручиваю, не нажимая, где она должна следовать?
Этот комментарий был сведен к минимуму модератором на сайте
Я столкнулся с проблемой отмены выбора ячейки и нуждался в двух диаграммах, поэтому я внес некоторые изменения, и теперь это работает.
Чтобы использовать его, введите правильное имя диаграммы.
*Примечание: это для двух диаграмм.


Private Sub worksheet_selectionchange (Цель ByVal как диапазон)
Тусклая позиция в чарте As Double

положение диаграммы = ActiveWindow.ScrollRow * ActiveCell.RowHeight
ActiveSheet.Shapes("Диаграмма 2").Top = позиция диаграммы

ActiveSheet.ChartObjects("Диаграмма 3").Top = позиция диаграммы + 250

End Sub
Этот комментарий был сведен к минимуму модератором на сайте
A mí меня pasa Que la Siguiente Вез Que Abro эль Archivo, эль сценарий Я. нет funciona. Tengo Que copyarlo, borrarlo, cerrar el archivo tras guardarlo, volver a abrir el archivo y volver a pegar el script en VBA. ¿Alguna решение?
Номинальный 4.5 из 5
Этот комментарий был сведен к минимуму модератором на сайте
Привет, сохраните книгу как книгу Excel с поддержкой макросов, vba будет работать при открытии в следующий раз.https://cdn.extendoffice.com/images/stories/comments/sun-comment/doc-macro-enable.png
Здесь еще нет комментариев
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места

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

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