发布网友 发布时间:2022-03-03 09:55
共1个回答
热心网友 时间:2022-03-03 11:25
本文中的示例代码假定数据及关联的标签按照以下格式排列在工作表中: "第一列包含数据标签。"第二列包含 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.在插入菜单上,单击模块。在模块工作表中键入下面的示例代码: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 Sub9.按Alt+Q 返回 Microsoft Excel。10.切换到图表工作表。11. 在工具菜单上,指向宏,然后单击宏。单击 AttachLabelsToPoints,然后单击运行以运行该宏。