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

有没有办法通过.值,或者可以通过添加新系列。 我仍然在思考 vba 如何用于生成图形,因此我想不出一种方法将数据引入我拥有的当前代码框架中的每个图形中。 我之前发现,添加序列似乎会在原始数据的绘制方式上产生错误。 任何帮助将不胜感激。

您不指定 Fam 和 Data 是范围还是数组。两者都可以用作 .值和 .XV系列的属性。两者都可以在工作表函数中使用:

MyStDevX = WorksheetFunction.StDev(Fam)
MyStDevY = WorksheetFunction.StDev(Data)
MyMeanX = WorksheetFunction.Average(Fam)
MyMeanY = WorksheetFunction.Average(Data)

最新更新