新浪博客

在 Excel 2007 中如何使用 VBA 宏为 XY 散点图或气泡图中的数据点添加标签

2013-06-21 17:57阅读:
Microsoft Office Excel 2007 不包括自动将文本标签附加到 XY 散点图或气泡图中的数据点的内置命令。但是,您可以创建一个用来向这两种类型的图表中添加数据标签的 Microsoft Visual Basic for Applications (VBA) 宏。
本文包含一个用来向 XY 散点图中添加数据标签的示例 VBA 宏。此宏还可以用来向气泡图中添加数据标签。

在 <wbr>Excel <wbr>2007 <wbr>中如何使用 <wbr>VBA <wbr>宏为 <wbr>XY <wbr>散点图或气泡图中的数据点添加标签更多信息

本文中的示例宏要求在包含数据和数据标签的工作表中使用下面的布局:
  • 第一列包含数据标签。
  • 第二列包含 XY 散点图的 x 值。
  • 第三列及后面的列包含 XY 散点图的 y 值。
若要使用本文中介绍的宏,请使用下面的数据创建一个图表。
注意:尽管下面的数据只有一列 y 值数据,但是您可以在自己的工作表中使用额外的 y 值列。
A1: 数据标签 B1: X 值 C1: Y 值
A2: 数据点 1 B2: 12 C2: 5
TD>
数据点 2 B3: 9 C3: 7
A4: 数据点 3 B4: 5 C4: 3
A5: 数据点 4 B5: 4 C5: 8
A6: 数据点 5 B6: 1 C6: 4

重要提示:数据中不应当包含空列。此外,请不要将包含数据标签的列与包含 x 值的列分开。必须严格按照本文中介绍的格式设置数据标签和值的布局。但是,在您自己的工作表中,左上角单元格不一定是单元格 A1。
Microsoft 提供的编程示例只用于演示目的,不附带任何明示或暗示的保证。这包括但不限于对适销性或特定用途适用性的暗示保证。本文假定您熟悉所演示的编程语言和用于创建和调试过程的工具。Microsoft 的支持工程师可以帮助解释某个特定过程的功能,但是他们不会修改这些示例以提供额外的功能或构建过程以满足您的特殊需求。
若要向 XY 散点图中添加数据标签,请按照下列步骤操作:
  1. 在包含示例数据的工作表中,选择单元格区域“B1:C6”。
    注意:请不要选择示例数据的整个单元格区域,只应选择单元格区域“B1:C6”。
  2. 在“插入”选项卡上的“插图”组中,单击“图表”。
  3. 在“创建图表”对话框中,单击所需的 XY 散点图的类型,然后单击“确定”。该 XY 散点图随即添加到该工作表中。
  4. 在该工作表中,单击此 XY 散点图。然后,在“设计”选项卡上的“位置”组中,单击“移动图表”。
  5. 在“移动图表”对话框中,单击“新工作表”,对这个新的图表工作表进行命名,然后单击“确定”。
  6. 按 Alt+F11 启动 Visual Basic 编辑器。
  7. 在“插入”菜单上,单击“模块”。
  8. 在模块工作表中键入下面的示例宏代码:

    在模块工作表中键入下面的示例宏代码: Sub AttachLabelsToPoints()
    'Dimension variables.
    Dim Counter As Integer, ChartName As String, xVals As String
    ' Disable screen updating while the subroutine is run.
    Application.ScreenUpdating = False
    'Store the formula for the first series in 'xVals'.
    xVals = ActiveChart.SeriesCollection(1).Formula
    'Extract the range for the data from xVals.
    xVals = Mid(xVals, InStr(InStr(xVals, ','), xVals, _
    Mid(Left(xVals, InStr(xVals, '!') - 1), 9)))
    xVals = Left(xVals, InStr(InStr(xVals, '!'), xVals, ',') - 1)
    Do While Left(xVals, 1) = ','
    xVals = Mid(xVals, 2)
    Loop
    'Attach a label to each data point in the chart.
    For Counter = 1 To Range(xVals).Cells.Count
    ActiveChart.SeriesCollection(1).Points(Counter).HasDataLabel = _
    True
    ActiveChart.SeriesCollection(1).Points(Counter).DataLabel.Text = _
    Range(xVals).Cells(Counter, 1).Offset(0, -1).Value
    Next Counter
    End Sub

  9. 按 Alt+Q 返回 Excel 2007。
  10. 单击“开发工具”选项卡。
    注意:如果“开发工具”选项卡没有出现,请依次单击“文件”选项卡、“Excel 选项”、“个性化”,然后单击选中“在功能区显示‘开发工具’选项卡”复选框。
  11. 在“功能区”上单击“宏”。
  12. 在“宏”对话框中,单击“AttachLabelsToPoints”宏,然后单击“运行”。
    该宏会将单元格区域 A2:A6 中的数据标签附加到该图表上的数据点。

我的更多文章

下载客户端阅读体验更佳

APP专享