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

时间:2017-08-03 18:52:14

标签: excel vba excel-vba graphing

我目前正在使用此功能生成图表:

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生成此信息并将其插入到图表代码中。

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

1 个答案:

答案 0 :(得分:0)

您不指定Fam和Data是范围还是数组。两者都可以用作Series的.Values和.XValues属性。也可以在WorksheetFunctions中使用:

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

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