使用 VBA 格式化数据表(值为 Double,但格式化需要字符串)

使用 VBA 格式化数据表(值为 Double,但格式化需要字符串)

目前正在开发一个可以自动制作图表的 vba 脚本。我想添加一个数据表,方法是:.HasDataTable = True

但是我想以百分比形式显示系列值。目前,该值定义为 Double,包含所有值,但格式不正确。 在此处输入图片描述

使用 Format() 或 FormatPercent() 将提供正确的值,但返回字符串。这适用于数据表,但不适用于图表本身,因为它不再识别这些值。

我的问题归结为是否可以在数据表和图表中将值显示为百分比?如果没有 VBA,只需在单元格中格式化数据即可轻松完成。问题是格式化会返回字符串,但图表需要整数或双精度数。

欢迎任何帮助,如果问题不清楚,请告诉我。

以下是部分代码。如果我将 Ratio 设置为字符串并使用 FormatPercent(),我会获得所需的格式,但 Ratio 中的值不再翻倍,因此它不会提供所需的图表。

Dim Ratio() As Double   
Dim labels() As String

ReDim Ratio(1 To Height)
ReDim labels(1 To Height)


For Each Column In sArray
        labels(i) = Sheets(DataSheetName).Cells(LabelsRow, Column)
        Ratio(i) = Math.Round(Sheets(DataSheetName).Cells(LabelsRow + 3, Column), 2)
        i = i + 1
Next Column


Set myChtObj = Sheets(DrawSheetName).ChartObjects.Add(Left:=Left, Width:=Width, Top:=Top, Height:=HeightGraph)

Dim srsNew1 As Series

 ' Add the chart
With myChtObj.Chart
    .ChartArea.Fill.Visible = False
    .ChartArea.Border.LineStyle = xlNone
    .PlotArea.Format.Fill.Solid
    .PlotArea.Format.Fill.Transparency = 1
    .HasTitle = True
    .ChartTitle.text = Title
    .HasLegend = False

    .Axes(xlValue).TickLabels.NumberFormat = "0%"
    .Axes(xlCategory, xlPrimary).HasTitle = False

    'add data table
    .HasDataTable = True

     ' Make Line chart
    .ChartType = xlLine


     ' Add series
    Set srsNew1 = .SeriesCollection.NewSeries
    With srsNew1
        .Values = Ratio
        .XValues = labels
        .Name = "Ratio"
        .Interior.Color = clr3 'RGB(194, 84, 57)
    End With


End With

除了上述内容之外,下面的图片可能最能说明我想要的内容。

在此处输入图片描述

相关内容