如何在excel气泡图中添加数据标签

如何在excel气泡图中添加数据标签,excel,bubble-chart,vba,Excel,Bubble Chart,Vba,嗨,我想在气泡图中添加自定义数据标签。我的代码如下。此时,数据标签指的是XValues。我想用气泡大小填充我的数据标签。你介意帮我定制下面的代码吗 我试图添加.DataLabel.Text=txt,但收到了以下消息 错误: 运行时错误“438”:对象不支持此属性或方法 Public Sub CreateMultiSeriesBubbleChart() If (Selection.Columns.Count <> 4 Or Selection.Rows.Count < 3) Th

嗨,我想在气泡图中添加自定义数据标签。我的代码如下。此时,数据标签指的是XValues。我想用气泡大小填充我的数据标签。你介意帮我定制下面的代码吗

我试图添加.DataLabel.Text=txt,但收到了以下消息 错误: 运行时错误“438”:对象不支持此属性或方法

Public Sub CreateMultiSeriesBubbleChart()
If (Selection.Columns.Count <> 4 Or Selection.Rows.Count < 3) Then
    MsgBox "Selection must have 4 columns and at least 2 rows"
    Exit Sub
End If

Dim red, green, blue As Integer


Dim bubbleChart As ChartObject
Set bubbleChart = ActiveSheet.ChartObjects.Add(Left:=Selection.Left, Width:=600, Top:=Selection.Top, Height:=400)
bubbleChart.Chart.ChartType = xlBubble
Dim r As Integer

For r = 2 To Selection.Rows.Count
    With bubbleChart.Chart.SeriesCollection.NewSeries
        .Name = "=" & Selection.Cells(r, 1).Address(External:=True)
        .XValues = Selection.Cells(r, 2).Address(External:=True)
        .Values = Selection.Cells(r, 3).Address(External:=True)
        .BubbleSizes = Selection.Cells(r, 4).Address(External:=True)
        .Format.Fill.Solid
        .Format.Fill.ForeColor.RGB = RGB(61, 161, 161)
     '   .DataLabel.Text = "txt"
    End With

Next

bubbleChart.Chart.SetElement (msoElementPrimaryCategoryAxisTitleAdjacentToAxis)
bubbleChart.Chart.Axes(xlCategory, xlPrimary).AxisTitle.Text = "=" & Selection.Cells(1, 2).Address(External:=True)

bubbleChart.Chart.SetElement (msoElementPrimaryValueAxisTitleRotated)
bubbleChart.Chart.Axes(xlValue, xlPrimary).AxisTitle.Text = "=" & Selection.Cells(1, 3).Address(External:=True)

bubbleChart.Chart.SetElement (msoElementPrimaryCategoryGridLinesMajor)
bubbleChart.Chart.Axes(xlCategory).MinimumScale = 0

在不使用VBA的情况下,右键单击气泡并选择“添加数据标签”。然后,在数据标签上单击鼠标右键,然后单击“格式化数据标签”。在“标签选项”下,从单元格中选择“值”,并指定包含要使用的标签的单元格。

在不使用VBA的情况下,右键单击气泡并选择“添加数据标签”。然后,在数据标签上单击鼠标右键,然后单击“格式化数据标签”。在“标签选项”下,从单元格中选择“值”,并指定包含要使用的标签的单元格。

DataLabel.Text是点的方法,而不是NewSeries

此代码:

For r = 2 To Selection.Rows.Count
    With bubbleChart.Chart.SeriesCollection.NewSeries
        [...]
        .DataLabel.Text = "txt"
    End With 
Next
…尝试标记该系列,但失败

认识到这段代码来自另一个著名的多系列气泡图示例,我们的逻辑假设是每个系列只需要处理1个数据点,这使得以下代码成为解决方案:

For r = 2 To Selection.Rows.Count
    With bubbleChart.Chart.SeriesCollection.NewSeries
        [...]
        .Points(1).HasDataLabel = True
        .Points(1).DataLabel.Text = "txt"
    End With 
Next
Text是一个点的方法,而不是NewSeries

此代码:

For r = 2 To Selection.Rows.Count
    With bubbleChart.Chart.SeriesCollection.NewSeries
        [...]
        .DataLabel.Text = "txt"
    End With 
Next
…尝试标记该系列,但失败

认识到这段代码来自另一个著名的多系列气泡图示例,我们的逻辑假设是每个系列只需要处理1个数据点,这使得以下代码成为解决方案:

For r = 2 To Selection.Rows.Count
    With bubbleChart.Chart.SeriesCollection.NewSeries
        [...]
        .Points(1).HasDataLabel = True
        .Points(1).DataLabel.Text = "txt"
    End With 
Next

你看过这篇微软的文章吗?如何使用VBA宏将标签添加到XY散点图或Excel 2007@luuklag中气泡图中的数据点:是的,我这样做了,这就是为什么我想检查如何将.DataLabel.Text添加到我的代码中。我是VBA的初学者。你看过这篇微软的文章吗?如何使用VBA宏将标签添加到XY散点图或Excel 2007@luuklag中气泡图中的数据点:是的,我这样做了,这就是为什么我想检查如何将.DataLabel.Text添加到我的代码中。我是VBA初学者。如果OP明确要求提供VBA代码解决方案,为什么要发布非VBA答案?他根本不是问如何做到这一点,而是特别问如何使用VBA做到这一点。@Cindymister,因为他们可能不使用VBA就能完成他们的目标,然后通过查看代码对过程进行反向工程。如果你同意的话,我将非常感谢你的支持。如果OP明确要求使用VBA代码解决方案,为什么你会给出一个非VBA的答案?他根本不是问如何做到这一点,而是特别问如何使用VBA做到这一点。@Cindymister,因为他们可能不使用VBA就能完成他们的目标,然后通过查看代码对过程进行反向工程。如果你同意的话,我希望能投赞成票。