Excel 创建Visual Basic图表

Excel 创建Visual Basic图表,excel,vba,Excel,Vba,我试图在VBA中创建一个条形图,它将显示特定月份的百分比变化。还需要在宏中计算数据。例如,能源系列显示的是3月-2月/2月,而不仅仅是当月数据 我该怎么做呢?我插入了我希望显示的图像 谢谢你的帮助。谢谢大家! 数据: 我希望vba代码显示的内容: 将计算出的百分比放入数组中,并使用 Sub chart() Dim i As Integer Dim chart As ChartObject With ActiveSheet.ChartObjects.Add _ (Left:=90, Width

我试图在VBA中创建一个条形图,它将显示特定月份的百分比变化。还需要在宏中计算数据。例如,能源系列显示的是3月-2月/2月,而不仅仅是当月数据

我该怎么做呢?我插入了我希望显示的图像

谢谢你的帮助。谢谢大家!

数据:

我希望vba代码显示的内容:


将计算出的百分比放入数组中,并使用

Sub chart()
Dim i As Integer
Dim chart As ChartObject
With ActiveSheet.ChartObjects.Add _
(Left:=90, Width:=375, Top:=75, Height:=225)
.chart.SetSourceData Source:=Sheets("sheet1").Range("B2:D2", "B5:D5")
.chart.HasTitle = True
.chart.ChartTitle.Text = "1-month percent change for X month"
.chart.ChartType = xlBarClustered
.chart.HasLegend = False
End With
End Sub
Sub chart()

    Dim i As Integer
    Dim chart As ChartObject
    Dim rng2 As Range
    Set rng2 = Range("C5:E5")

    ' calculate percent
    Dim cell As Range, pcent() As Single, prev As Single, curr As Single
    ReDim pcent(rng2.Count - 1)

    For Each cell In rng2
        curr = CSng(cell)
        prev = CSng(cell.Offset(-1, 0))
        pcent(i) = (curr - prev) / prev
        i = i + 1
    Next

    With ActiveSheet.ChartObjects.Add _
(Left:=90, Width:=375, Top:=100, Height:=225).chart
        .SetSourceData Source:=Sheets("sheet1").Range("B2:E2,B5:E5")
        .HasTitle = True
        .ChartTitle.Text = "1-month percent change for " &   ActiveSheet.Range("B5").Value
        .ChartType = xlBarClustered
        .HasLegend = False
        .SeriesCollection(1).Values = pcent
        .Axes(xlValue, xlPrimary).TickLabels.NumberFormat = "0.00%"
    End With
End Sub