Excel图形自动调整轴原点

时间:2013-04-25 10:05:07

标签: excel vba graph resize autoresize

我有以下代码绘制散点图。有没有一种优雅的方法来调整绘图区域的大小,使得x和y轴不总是自动从零​​开始,而是低于最低值?目前,我的所有数据点都在一个角落里聚集起来。非常感谢!

Set cht = ActiveChart
'GRAPH 1
    Set rng1 = ActiveSheet.Range(Range("AC13").Offset(jump * 50, 0), Range("AG23").Offset(jump * 50, 0))

With ActiveSheet.ChartObjects.Add(Left:=rng1.Left, Width:=rng1.Width, Top:=rng1.Top, Height:=rng1.Height)
 '(Left:=100, Width:=375, Top:=75, Height:=225)
    .Chart.ChartType = xlXYScatterLines
    .Chart.HasLegend = False
    .Chart.Axes(xlCategory).TickLabels.Font.Size = 18
    .Chart.Axes(xlValue).TickLabels.Font.Size = 18
    '.Chart.SetSourceData Source:=Range("U13:O40,T13:N40")
    Set srs = .Chart.SeriesCollection.NewSeries
            srs.XValues = Range(Range("U13").Offset(jump * 50, 0), Range("U13").Offset(jump * 50, 0).End(xlDown))
    srs.Values = Range(Range("T13").Offset(jump * 50, 0), Range("T13").Offset(jump * 50, 0).End(xlDown))

End With

2 个答案:

答案 0 :(得分:2)

如果您的y范围数据位于B1:B10的单元格ActiveSheet中,那么您可以使用这样的代码来启动范围为最低值的90%(即刚好低于)

Set cht = ActiveChart
cht.Axes(xlValue).MinimumScale = 0.9 * Application.Min([b1:b10])

答案 1 :(得分:0)