图表中的数据标签带有三个小数点

时间:2013-08-08 21:20:52

标签: vba excel-vba charts excel-2007 excel

我正在努力研究我编写的一部分VBA代码,以便在Excel图表中添加自定义数据标签。

Sub LabelPnt() 'change
Dim nm As Variant
Dim rate As Variant
Dim i As Integer
Dim r As Integer
Dim n As Integer
Dim b As Boolean
With Sheets("Rates") 'change as needed
r = .Range("C13:C30").Rows.Count   'change as needed
ReDim nm(r)
nm = .Range("C13:C30") 'num/den change
ReDim rate(r)
rate = .Range("B13:B30")  'rate change
End With
With Sheets("Fairview Northland Rate") 'change
For n = 1 To 1
With .SeriesCollection(n)
        .ApplyDataLabels
    For i = 1 To r
       With .Points(i)
        Select Case n
            Case 1
                .DataLabel.Text = rate(i, n) & Chr10 & "(" & nm(i, n) & ")"
                .DataLabel.Font.Bold = False
                .DataLabel.Font.Size = 7.5
                .DataLabel.HorizontalAlignment = xlCenter
        End Select
       End With
    Next i
End With
Next n
End With
End Sub

在此声明中“.DataLabel.Text = rate(i,n)& Chr10&”(“& nm(i,n)&”)“”,速率必须是三个小数点,如在原始数据表中,但它不包括工作表中数据标签中的小数点。我假设这是因为数据标签是文本。

有人可以帮我解决这个问题吗?万分感谢。我花了很多时间,但是没有想到这一部分。

如果需要,我可以提供任何进一步的信息或澄清。

1 个答案:

答案 0 :(得分:1)

很难用3个小数点来判断标签的哪个部分,但这是可用于格式化任何文本的通用代码。

Format(yourValue, "#.000")

例如,如果单元格A1中的值为123.45678 ...

Format(Range("A1"), "#.000")

会给你文字“123.457”

修改

根据您的示例,使用以下代码进行更新

.DataLabel.Text = Format(rate(i, n), "#.000") & Chr10 & "(" & nm(i, n) & ")"