如何使用 VBA 返回 Excel 中堆积柱形图的“系列”和“点”名称

如何使用 VBA 返回 Excel 中堆积柱形图的“系列”和“点”名称

我正在探索 excel 中的 VBA,想知道如何从我的堆积柱形图中获取系列和点名称。如果您有一个堆积柱形图,您可以将鼠标悬停在任何列上,excel 会向您显示一个小文本框,其中包含“系列“<series-name>”点“<point-name>”值:##”。

我希望能够单击或悬停在图表中的任意列上并执行 VBA 代码来查找系列和点名称。对我来说最具挑战性的任务是通过悬停或鼠标单击来触发 VBA 脚本并识别活动图表中的活动部分。

任何帮助是极大的赞赏!

答案1

这不是一个容易回答的任务,因为您无法在单击情节元素时触发宏运行。

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 中的某个点上,则会弹出所需窗口: 截屏

答案2

至于如何运行 vba:您实际上在图表本身中创建一个 chart_mousemove 事件(进入图表后,在宏/vba 编辑器 (alt-F11) 中打开图表页面),然后每次将鼠标移到图表上时,它都会运行。这就像在 Windows 窗体中使用事件一样,如果您曾经这样做过的话。

请参阅此页面了解更多详情http://www.databison.com/interactive-chart-in-vba-using-mouse-move-event/

相关内容