摘要
在 Microsoft Excel 中,没有可以自动向 xy(散点)或气泡图中的数据点附加文本标签的内置命令。 但是,可以创建 Microsoft Visual Basic for Applications 宏来进行此操作。 本文包含一个在 XY 散点图上执行此任务的示例宏。 但是,可以将同样的代码用于气泡图。
更多信息
Microsoft提供编程示例仅供说明使用,不提供明示或默示保证。 这包括但不限于适销性或针对特定用途的适用性的默示保证。 本文假定你熟悉所演示的编程语言以及用于创建和调试过程的工具。 Microsoft支持工程师可以帮助解释特定过程的功能。 但是,它们不会修改这些示例以提供附加的功能或构造过程来满足你的特定要求。 本文中的示例代码假定数据及关联的标签按照以下格式排列在工作表中:
-
第一列包含数据标签。
-
第二列包含 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 (散点图) 中的数据点,请执行以下步骤:
-
在包含示例数据的工作表中,选择单元格区域 B1:C6。
-
在 Microsoft Excel 2003 及 Excel 的更低版本中,请按照下列步骤操作:
-
单击“插入”菜单上的“图表”。
-
在“图表向导 - 步骤 1(共 4 步) - 图表类型”对话框中,单击“Standard类型”选项卡。 在“ 图表类型”下,单击“XY (散点) ”,然后单击“下一步”。
-
在 “图表向导 - 步骤 2(共 4 步) - 图表源数据 ”对话框中,单击“数据范围”选项卡。 在“ 系列”下,单击“列”,然后单击“下一步”。
-
在 “图表向导 - 步骤 3(共 4 步) - 图表选项 ”对话框中,单击“下一步”。
-
在 “图表向导 - 步骤 4(共 4 步)-图表位置 ”对话框中,单击“ 作为新工作表 ”选项,然后单击“完成”。
在 Microsoft Office Excel 2007 中,请按照下列步骤操作:
-
依次单击“插入”选项卡、“图表”组中的“散点图”,然后选择类型。
-
在“设计”选项卡上,依次单击“位置”组中的“移动图表”、“新工作表”,然后单击“确定”。
-
-
按 Alt+F11 启动 Visual Basic 编辑器。
-
在“插入”菜单上,单击“模块”。
-
在模块工作表中键入下面的示例代码:
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 -
按 ALT+Q 返回 Excel。
-
切换到图表工作表。
-
在 Excel 2003 和更早版本的 Excel 中,指向“工具”菜单上的“宏”,然后单击“宏”。 单击“AttachLabelsToPoints”,然后单击“运行”以运行该宏。在 Excel 2007 中,单击“开发工具”选项卡,在“代码”组中单击“宏”,选择“AttachLabelsToPoints”,然后单击“运行”。
该宏会将单元格 A2:A6 中的标签附加到图表上的数据点。