如何在 Excel 中使用宏为 xy 散点图或气泡图中的数据点添加标签
在 MicrosoftExcel 中,没有可以自动向 xy(散点)或气泡图中的数据点附加文本标签的内置命令。但是,可以创建Microsoft Visual Basic for Applications 宏来进行此操作。本文包含了一个对 XY 散点图执行此任务的示例宏,而相同代码也可用于气泡图。
本文中的示例代码假定数据及关联的标签按照以下格式排列在工作表中:• 第一列包含数据标签。
• 第二列包含 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)
DoWhile 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 中的标签附加到图表上的数据点。
Excel开发对象
1.Application对象
该对象代表Excel应用程序,通过该对象可访问Excel中的其他所有对象。
(1)ActiveCell属性:返回Range对象,代表活动窗口或指定窗口的活动单元格。
(2)ActiveChart属性:返回Chart对象,代表活动图表。
(3)ActiveSheet属性:返回WorkSheet对象,代表活动工作簿中的活动工作表。
(4)ActiveWorkbook属性:返回Workbook对象,代表活动的工作簿。
(5)Cells属性:返回 Range对象,代表活动工作簿中所有单元格。
(6)Charts属性:返回Sheets集合,代表活动工作簿中所有图表。
(7)Range属性:返回Range对象,代表单元格或单元格区域。
(8)Sheets属性:返回Sheets集合,代表当前工作簿的所有工作表。
(9)StatusBar属性:返回状态栏的文本。
(10)Workbooks属性:返回Workbooks集合,代表所有打开的工作簿。
(11)Worksheets属性:返回Sheets集合,代表活动工作簿的所有工作表。
(12)Calculate方法:用于对指定区域的单元格进行计算。
(13)Evaluate方法:用于将字符串的值进行转义操作,即可将以字符串表示的运算式进行求解的操作。
(14)InputBox方法:用于显示接收输入的对话框,并返回对话框中输入的信息。
(15)Quit方法:用于退出Excel应用程序。
2.AddIn对象
该对象代表加载宏,通过“AddIns(index)”语法可返回AddIn对象,其中index参数为加载宏标题或编号。
FullName属性:返回加载宏的文件名。
3.Chart对象
该对象代表工作簿中的图表,包括嵌入式图表和单独的图表。
(1)ChartArea属性:返回ChartArea对象,代表指定图表中的全部图表区域。
(2)ChartTitle属性:返回ChartTitle对象,代表指定图表的标题。
(3)ChartType属性:返回或设置图表的类型。
(4)DataTable属性:返回DataTable对象,代表图表数据表。
(5)Walls属性:返回Walls对象,代表三维图表的背景墙。
4.Workbook对象
该对象代表工作簿。
(1)Styles属性:返回Styles集合,代表指定工作簿的所有样式。
(2)Add方法:用于新建工作簿,并将其设置为活动工作簿。
(3)Open方法:用于打开工作簿。
(4)OpenText方法:用于载入文本文件,并将其进行分列处理,然后在工作表中插入经过分列处理的文本数据。
5.Worksheet对象
该对象代表工作表,通过“Worksheets(index)”的语法可获取Worksheet对象,其中index参数工作表索引号或名称。
(1)AutoFilter属性:用于设置是否进行筛选。
(2)UsedRange属性:返回Range对象,代表指定工作表中的已用区域。
(3)PrintOut方法:用于打印指定的对象。
(4)PrintPreview方法:将切换之打印预览视图。
(5)Select方法:用于选择指定的对象。
6.Range对象
该对象代表选择区域,是Excel开发中一个常用的对象。
(1)Address属性:返回对指定区域的引用名称。
(2)Areas属性:返回Areas集合,代表多重选择区域中的所有区域。
(3)Column属性:返回第一块指定区域中的第一列的序号。
(4)Columns属性:返回Range对象,代表指定区域中的所有列。
(5)ColumnWidth属性:返回或设置指定区域中所有列的列宽。
(6)Formula属性:用于设置Range对象使用的公式。
(7)MergeArea属性:返回Range对象,代表指定单元格的合并范围。
(8)MergeCells属性:返回区域中是否包含合并单元格。
(9)NumberFormat属性:返回或设置指定对象的格式代码。
(10)Row属性:返回第一块指定区域中的第一行的序号。
(11)Rows属性:返回Range对象,代表指定区域中的所有行。
(12)Activate方法:用于激活对象。
(13)ApplyNames方法:用于将名称应用于指定的单元格。
(14)AutoFill方法:用于对指定的单元格进行自动填充。
(15)AutoFit方法:用于将列宽和行高调整为适当值。
(16)Find方法:用于在区域内查找特定信息,并返回代表第一个包含所查找信息的单元格。
(17)Merge方法:用于从指定的Range对象中创建合并单元格。
(18)Replace方法:用于在指定区域内查找和替换。
(19)Subtotal方法:用于创建指定区域内的分类汇总
联系客服