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

Як завжди тримати діаграму в полі зору під час прокрутки в Excel?

Якщо в аркуш вставлена ​​діаграма, коли ви прокручуєте аркуш вниз, щоб переглянути дані, діаграму не можна переглядати одночасно, як показано на знімку екрана, що повинно бути неприємно. У цій статті я представляю код VBA, щоб тримати діаграму завжди в полі зору, навіть незважаючи на прокрутку аркуша вниз або вгору.

doc тримати діаграму в поданні 1
doc стрілка вниз
doc тримати діаграму в поданні 2

Завжди тримайте діаграму в полі зору


стрілка синя права міхур Завжди тримайте діаграму в полі зору

Щоб зберегти діаграму в полі зору під час прокрутки аркуша, ви можете застосувати код VBA для її вирішення.

1. Клацніть правою кнопкою миші на вкладці аркуша, на якій ви хочете, щоб діаграма була видимою, і натисніть Переглянути код формують контекстне меню. Дивіться знімок екрана:
doc тримати діаграму в поданні 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

doc тримати діаграму в поданні 5

3. Збережіть і закрийте діалогове вікно, тоді діаграма буде переміщена вниз або вгору при натисканні на будь-яку клітинку.
doc тримати діаграму в поданні 6

Примітки:

(1) У коді VBA, діаграма 2 - це назва діаграми, яку ви хочете тримати в полі зору, ви можете змінювати її, як вам потрібно.

(2) Цей VBA не завжди може тримати в полі зору групу діаграм.


Найкращі інструменти для підвищення продуктивності офісу

Kutools для Excel вирішує більшість ваших проблем і збільшує продуктивність на 80%

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

Вкладка Office забезпечує інтерфейс з вкладками для Office і значно спрощує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Коментарі (15)
Оцінено 4.75 з 5 · рейтинги 2
Цей коментар був мінімізований модератором на сайті
Це було добре, але мені б хотілося, щоб він міг просто рухатися за допомогою колеса прокрутки, як рядки заголовків. Крім того, якщо я хочу вибрати клітинку, потрібно два клацання. Перше клацання переміщує діаграму, але також виділяє діаграму, тому мені потрібно клацнути ще раз, щоб вибрати клітинку.
Цей коментар був мінімізований модератором на сайті
Я додав "activecell.select" в останньому рядку цього коду, і це виправило проблему подвійного клацання. Він автоматично вибере останню активну клітинку, яку ви клацнули, щоб перемістити діаграму. Сподіваюся, це допоможе.
Цей коментар був мінімізований модератором на сайті
ЦЕ МЕНІ ПОТРІБНО! ЗОЛОТИЙ!
Цей коментар був мінімізований модератором на сайті
Цей макрос зробив саме те, що я хотів. Однак це створило ще одну проблему, яку я поцікавився, чи є у вас рішення.

Поки цей макрос активний, я не можу вибирати клітинки для інших цілей, наприклад для форматування чи об’єднання. Клацніть і перетягніть, зсунути чи Ctrl працюють, щоб вибрати групу комірок. Я можу вибрати лише одну клітинку, на яку я клацнув. Я часто хочу змінити форматування (фон, заповнити формулу тощо). Єдиний спосіб, яким я зміг це зробити, — це видалити макрос, зберегти, внести зміни у форматування, вставити макрос назад і зберегти.

Чи є простіший спосіб зробити це? можливо:

1. (бажано) Просте натискання клавіші, яке тимчасово вимикає макрос, а потім знову вмикає його.

2. Деякий код додано до макросу, щоб дозволити виділення групи комірок.

Денніс
Цей коментар був мінімізований модератором на сайті
Чи існує подібна формула, яку можна створити для Google Таблиць?
Цей коментар був мінімізований модератором на сайті
Чи є спосіб обмежити, як високо на аркуші буде переміщатися діаграма? Я не хочу, щоб він ставився над рядком 8
Цей коментар був мінімізований модератором на сайті
Hola muchas gracias por el codigo, utilizando este codigo ¿Hay alguna manera de limitar qué tan alto en la hoja se reubicará el gráfico? por ejemplo, no quiero que se coloque encima de la fila 9. Ayuda por favor.
Оцінено 5 з 5
Цей коментар був мінімізований модератором на сайті
чи можу я використовувати Kutools для автоматичного використання цього VBA для своїх діаграм??
Цей коментар був мінімізований модератором на сайті
Вибачте, Wangnuli, Kutools поки що не підтримує це.
Цей коментар був мінімізований модератором на сайті
Чи може хтось допомогти. коли я виконую ці кроки


Приватний додатковий аркуш_SelectionChange(ByVal Target As Range)
'ОновленняExtendoffice20161111
Dim CPos As Double
Application.ScreenUpdating = Невірний
CPos = ActiveWindow.ScrollRow * ActiveCell.RowHeight
ActiveSheet.ChartObjects("Діаграма 2").Активувати
ActiveSheet.Shapes("Діаграма 2").Top = CPos
ActiveWindow.Visible = False
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 Subworksheet_selectionchange(ByVal target As Range)
Розташування діаграми як подвійне

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

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

End Sub
Цей коментар був мінімізований модератором на сайті
A mí me pasa que la siguiente vez que abro el archivo, el script ya no funciona. Tengo que copiarlo, borrarlo, cerrar el archivo tras guardarlo, volver abrir el archivo y volver a pegar el script en VBA. ¿Alguna solución?
Оцінено 4.5 з 5
Цей коментар був мінімізований модератором на сайті
Привіт, збережіть робочу книгу як робочу книгу з увімкненням макросів Excel, vba працюватиме під час наступного відкриття.https://cdn.extendoffice.com/images/stories/comments/sun-comment/doc-macro-enable.png
There are no comments posted here yet
Залишайте свої коментарі
Публікація як гість
×
Оцініть цю публікацію:
0   Персонажі
Рекомендовані місця

Слідуй за нами

Copyright © 2009 - WWW.extendoffice.com. | Всі права захищені. На основі ExtendOffice. | Карта сайту
Microsoft та логотип Office є товарними знаками або зареєстрованими товарними знаками Microsoft Corporation у США та / або інших країнах.
Захищений Sectigo SSL