2017-08-03 76 views
0

我目前使用此函数来生成的曲线的动态生成的图表:VBA:添加均值和标准差来

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如何用于生成图的工作,所以我想不出在当前代码框架中将数据带入每个图的方法。我之前发现,系列的添加似乎会在原始数据的绘制方式上产生错误。任何帮助,将不胜感激。

+0

“NCELL = medidas.Range(” A65536" )结束(xlUp).Row NcoI位= medidas.Cells(NCELL,medidas.Columns.Count).END( (ncell,ncol + 2),_ Range(Cells)(ncell,ncol)),Range(Range) 单元格(ncell,ncol + ncol)),False,True,True“ 我用它来制作一个移动平均值的图形,所以可以用于其他数学表达式 – danieltakeshi

回答

0

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

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

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