将hover标签添加到在Excel 2007中dynamic更新数据范围的散点图

您好我想添加标签到散点图上的绘图点在Excel中,但是我的图表数据集范围更改,只要我的macros更新它…所以我的第一个问题是:是否有方法来设置添加的数据范围如VBA中的“图表hover标签”中的一个?

录制一个macros没有任何作用(我的手指交叉开始)。

这里是我知道的其他图表插件的列表,从我所知道的只有其中的一个允许您只显示标签,当你把鼠标hover在绘制的点上..我也没有看到一个让你显示数据范围点击点。

这是允许您只在hover上显示的加载项: http : //www.tushar-mehta.com/excel/software/chart_hover_label/index.html

这些是我知道的其他2: http : //www.appspro.com/Utilities/ChartLabeler.htm http://spreadsheetpage.com/index.php/file/j_walk_chart_tools_add_in/

有谁知道任何其他图表加载项的Excel(最好是免费的),给更多的select? 并可以通过VBA更新?

谢谢你的帮助。

我不知道加载项,但很多可以在图表交互的VBA中完成。 只需插入图表并在VBA中将下面的代码input到该表中。

这是我在一个工作图表中的一个例子。 当我点击一个系列时,它将创build一个文本框,并在下面的代码中更新的单元格中填充文本。 它只是为了系列名称,但你可以添加更多的function。

Private Sub Chart_MouseDown(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y As Long) Dim ElementID As Long, Arg1 As Long, Arg2 As Long Dim chart_data As Variant, chart_label As Variant Dim last_bar As Long, chrt As Chart Dim ser As Series, Txt As String On Error Resume Next 'Sorry for this line of code, I haven't had the chance to look into why it was needed. Me.GetChartElement x, y, ElementID, Arg1, Arg2 Set chrt = ActiveChart Set ser = ActiveChart.SeriesCollection(1) chart_data = ser.Values chart_label = ser.XValues Set txtbox = ActiveSheet.Shapes("hover") 'I suspect in the error statement is needed for this. If ElementID = xlSeries Then txtbox.Delete Sheet1.Range("Ch_Series").Value = Arg1 Txt = Sheet1.Range("CH_Text").Value Set txtbox = ActiveSheet.Shapes.AddTextbox _ (msoTextOrientationHorizontal, x - 150, y - 150, 150, 40) txtbox.Name = "hover" txtbox.Fill.Solid txtbox.Fill.ForeColor.SchemeColor = 9 txtbox.Line.DashStyle = msoLineSolid chrt.Shapes("hover").TextFrame.Characters.Text = Txt With chrt.Shapes("hover").TextFrame.Characters.Font .Name = "Arial" .Size = 12 .ColorIndex = 16 End With ser.Points(Arg2).Interior.ColorIndex = 44 txtbox.Left = x - 150 txtbox.Top = y - 150 Else txtbox.Delete ser.Interior.ColorIndex = 16 End If End Sub 

但你也可以做下面的hoverfunction。

 Private Sub Chart_MouseMove(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y As Long) 

记住代码需要插入到图表工作表中,而不是模块中。

至于你的数据范围拟合的图表,你是否尝试过dynamic命名范围,然后设置graphics参考命名范围?

你可以设置MouseMove函数来显示你想要的,然后在MouseDown上它可以导航到select的系列数据范围。

希望这可以帮助。