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

文章翻译 文章翻译
文章编号: 213750 - 查看本文应用于的产品
展开全部 | 关闭全部

概要

在 Microsoft Excel 中,没有可以自动向 xy(散点)或气泡图中的数据点附加文本标签的内置命令。但是,可以创建 Microsoft Visual Basic for Applications 宏来进行此操作。本文包含了一个对 XY 散点图执行此任务的示例宏,而相同代码也可用于气泡图。

更多信息

Microsoft 提供的编程示例只是为了进行说明,没有任何明示或暗示保证,包括(但不限于)对适销性和/或针对特定用途的适用性的暗示保证。本文假定您熟悉所演示的编程语言和用于创建和调试过程的工具。Microsoft 的技术支持人员可以帮助解释某个特定过程的功能,但是他们不会修改这些示例以提供额外的功能或构建过程以满足您的特殊需要。如果您的编程经验不够丰富,您可能需要与 Microsoft 认证伙伴联系或者拨打 Microsoft 收费咨询电话 (800) 936-5200。有关 Microsoft 认证伙伴的更多信息,请访问下面的 Microsoft 网站:
https://partner.microsoft.com/global/30000104
有关可用的支持选项以及如何与 Microsoft 联系的更多信息,请访问下面的 Microsoft 网站:
http://support.microsoft.com/default.aspx?scid=fh;zh-cn;CNTACTMS
本文中的示例代码假定数据及关联的标签按照以下格式排列在工作表中:
  • 第一列包含数据标签。
  • 第二列包含 xy(散点)图的 x 值。
  • 第三列及后面的列包含 xy(散点)图的 y 值。
注意:虽然提供的示例仅包含一列 y 值数据,但您可以使用多列数据。

要使用本文中的宏,请使用下面的数据创建一个图表:
A1:标签           B1:X 值        C1:Y 值
A2:DataPoint1   B2:12         C2:5
A3:DataPoint2   B3:9          C3:7
A4:DataPoint3   B4:5          C4:3
A5:DataPoint4   B5:4          C5:8
A6:DataPoint5   B6:1          C6:4
注意:表不应包含空列,包含数据标签的列不应与包含 x 值的列分开。标签和值必须完全按照本文所介绍的格式排列。(左上角的单元格不必非得为单元格 A1。)

要向 xy(散点)图中的数据点附加文本标签,请按照下列步骤操作:
  1. 在包含示例数据的工作表中,选择单元格区域 B1:C6,然后单击插入菜单上的图表
  2. 在“图表向导 – 4 步骤之 1 – 图表类型”对话框中,单击标准类型选项卡。在“图表类型”下,单击 XY 散点图,然后单击下一步
  3. 在“图表向导 – 4 步骤之 2 – 图表源数据”对话框中,单击数据区域选项卡。在“系列产生在”下,单击,然后单击下一步
  4. 在“图表向导 – 4 步骤之 3 – 图表选项”对话框中,单击下一步
  5. 在“图表向导 – 4 步骤之 4 – 图表位置”对话框中,单击“作为新工作表插入”选项,然后单击完成
  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 返回 Microsoft Excel。
  10. 切换到图表工作表。
  11. 工具菜单上,指向,然后单击。单击 AttachLabelsToPoints,然后单击运行以运行该宏。

    该宏会将单元格 A2:A6 中的标签附加到图表上的数据点。

属性

文章编号: 213750 - 最后修改: 2006年11月23日 - 修订: 3.4
这篇文章中的信息适用于:
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 标准版
  • Microsoft Excel 2000 标准版
  • Microsoft Excel 97 标准版
  • Microsoft Excel X for Mac
  • Microsoft Excel 2001 for Mac
  • Microsoft Excel 98 for Macintosh
关键字:?
kbhowto kbinfo kbchart kbprogramming kbdtacode KB213750
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com