我正在努力研究我编写的一部分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)&”)“”,速率必须是三个小数点,如在原始数据表中,但它不包括工作表中数据标签中的小数点。我假设这是因为数据标签是文本。
有人可以帮我解决这个问题吗?万分感谢。我花了很多时间,但是没有想到这一部分。
如果需要,我可以提供任何进一步的信息或澄清。
答案 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) & ")"