0

我正在努力处理我编写的用于将自定义数据标签放入 excel 图表中的 VBA 代码的一部分。

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) & ")"" 中,速率必须是原始数据表中的三个小数点,但它的不包括工作表中数据标签中的小数点。我假设这是因为数据标签是文本。

有人可以帮我解决这个问题吗?万分感谢。我花了很多时间,但无法弄清楚这部分。

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

4

1 回答 1

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) & ")"
于 2013-08-09T01:35:34.443 回答