在Access的VBA中创建自定义标准差条



我试图使用VBA在图表中包含自定义标准偏差条,但我一直在实际添加条的行中获得运行时错误13 "类型不匹配"。我相信它有一个问题与我的范围对象(rngStD),但我不知道为什么。我在Access中使用这个VBA,但我创建了一个Excel应用程序(xlApp),这是现在数据所在的位置,也是创建图形的位置。

'Start of relevant code
xlApp.Sheets("Monday").Select
Set rngAv = Range(Cells(numRows + 2, 3), Cells(numRows + 2, 26))
Set rngStD = Range(Cells(numRows + 3, 3), Cells(numRows + 3, 25))
xlApp.Sheets("Graphs").Select
'Creates graph for average usage with standard deviation at each point
Set oChart = xlApp.Worksheets("Graphs").ChartObjects.Add(600, 10, 500, 250).Chart
    oChart.SetSourceData Source:=rngAv   'xlApp.Selection
    oChart.Type = xlLine
    oChart.HasTitle = True
    oChart.ChartTitle.Text = "Average Usage for Mondays"
'At this point the code works and correctly creates the above graph
With oChart.FullSeriesCollection(1)
    .HasErrorBars = True
    .ErrorBars.Select
    'Error is on the next line, I believe it doesn't like the "Amount:=rngStD"
    .ErrorBar Direction:=xlY, Include:= _
        xlBoth, Type:=xlCustom, Amount:=rngStD.Value
    .ErrorBars.Select
End With

编辑:在rngStD的末尾添加。value。最后一行的值。现在数量固定为50,而不是范围内每个点的单独值。

如果rngStD被声明为一个范围,那么你需要给它添加。value。这将传递由范围存储的值,而不是范围对象本身。

您需要以R1C1表示法传递范围的地址,前面加一个等号。试试这个语法:

.ErrorBar Direction:=xlY, Include:=xlBoth, _
    Type:=xlCustom, Amount:="=" & rngStD.Address(, , xlR1C1, True), _
    MinusValues:="=" & rngStD.Address(, , xlR1C1, True)

相关内容

  • 没有找到相关文章

最新更新