VBA:将均值和标准差添加到动态生成的图形中

VBA: Add Mean and Standard Deviation to a dynamically generated graph

我目前正在使用这个函数生成图表:

Function make_chart(Fam, Data, Row_Start, Title)
Dim wbsheet As String
sheetName = ActiveSheet.Name

...

Set Char = Charts.Add

With Char
    For Each s In .SeriesCollection
        s.Delete
    Next s
    With .SeriesCollection.NewSeries()
        .Values = Data
        .XValues = Fam
    End With
    .ChartType = xlColumnClustered
    .HasTitle = True
    .ChartTitle.Text = Title_Str
    .HasLegend = False
    .Name = Title_Str
    .Axes(xlCategory).TickLabels.Font.size = 8
End With

Worksheets(sheetName).Activate
End Function

基本上它是在一个循环中调用的,该循环正在选择数据块以动态绘制图表。我被要求为这些图表中的每一个添加一个平均值和标准偏差,这些图表是在没有实际方法改变源工作表的情况下生成的。由于我无法更改源代码来生成此信息,因此我希望使用 Application.WorksheetFunction.StDev 和 WorksheetFunction.Average 来生成此信息并将其插入图表代码中。

有没有办法通过 .Values 或通过添加新系列来传递它。我仍然在思考 vba 如何生成图表,所以我想不出一种方法将数据带入我当前代码框架内的每个图表中。我之前发现添加系列似乎会在原始数据的绘制方式上产生错误。任何帮助将不胜感激。

您没有指定 Fam 和 Data 是范围还是数组。两者均可用作系列的 .Values 和 .XValues 属性。也可以在 WorksheetFunctions 中使用:

MyStDevX = WorksheetFunction.StDev(Fam)
MyStDevY = WorksheetFunction.StDev(Data)

MyMeanX = WorksheetFunction.Average(Fam)
MyMeanY = WorksheetFunction.Average(Data)