Я изучаю VBA в Excel и хотел бы узнать, как получить имена Серий и Точек из моей таблицы столбцов с накоплением. Если у вас есть столбец с накоплением, вы можете навести курсор на любой столбец, и Excel покажет вам небольшое текстовое поле с надписью "Серия" <имя-серии> "Точка" <имя-точки> «Значение: ## '.

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

Любая помощь очень ценится!

2 ответа2

0

Это не задача с простым ответом, так как вы не можете запустить макрос при нажатии на элементы графика.

VB обычно настроен на создание диаграмм, а не на их чтение.

Код такой как:

Sub macro()
 If TypeName(Selection) = "Series" Then
    Set ch = ActiveChart.SeriesCollection
    For I = 1 To ch.Count
        If ch(I).Name = Selection.Name Then MsgBox "Series is " & Selection.Name
    Next I
  End If
End Sub

с http://www.vbaexpress.com/forum/showthread.php?43451-Chart-Series-Selected-Index предоставит вам название выбранной серии. Вам нужно настроить горячую клавишу или кнопку, чтобы запустить его. Я не видел подобный код для отдельных точек.

Но вы уверены, что вам нужно выполнить эту задачу с VB?

Если я наведу указатель мыши на точку в Excel 2010, всплывающее окно появится так, как вы хотите: screenhot

0

Что касается запуска vba: вы создаете событие chart_mousemove на самом деле в самой диаграмме (откройте страницу диаграммы в редакторе макросов /vba (alt-F11), как только вы окажетесь на диаграмме), а затем оно будет запускаться при каждом перемещении мышь над графиком. Это похоже на использование событий в формах Windows, если вы когда-либо делали это.

Пожалуйста, смотрите эту страницу для более подробной информации http://www.databison.com/interactive-chart-in-vba-using-mouse-move-event/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .