编辑:问题是散点图是根据行号而不是选定的x轴绘制我的数据。当我更改为折线图时,它会正确执行,但我的VBA仅适用于散点图,因此我需要使此图引用正确的数据或更改我的代码以使其在折线图上工作。我检查过数据的格式是数字,而不是文本,但仍然没有改进。
我为工作创建了一个电子表格,我的同事将数据拖放到工作表中。在另一个工作表上生成报告,其中包括原始数据的图表。
我为每列数据使用“定义名称”,这样无论数据集有多大,都会选择正确的范围。这很好用,每次数据更改时图表都会自动更新。然后我运行VBA来缩放轴,这一切都搞砸了
当我运行下面的代码时,轴就像我想要的那样被缩放,但是现在,图形只显示了每组数据的直线水平线。我检查了“选择数据”并且仍然正确选择了所有内容,并且数据与我点击“运行”之前的数据相同,只是图表看起来不正确。这是代码:
Private Sub Worksheet_Calculate()
ScaleAxes
End Sub
Sub ScaleAxes()
'With Application.ActiveChart.Axes(xlCategory, xlPrimary)
With ChartObjects(1).Chart.Axes(xlCategory, xlPrimary)
.MinimumScale = ActiveSheet.Range("B26").Value
.MaximumScale = ActiveSheet.Range("B25").Value
.MajorUnit = 5
End With
'With Application.ActiveChart.Axes(xlValue, xlPrimary)
With ChartObjects(1).Chart.Axes(xlValue, xlPrimary)
.MinimumScale = ActiveSheet.Range("C26").Value
.MaximumScale = ActiveSheet.Range("C25").Value
.MajorUnit = 10
End With
End Sub
我真的看不出问题所在。数据是正确的,它在代码运行之前正确显示在图表上。代码适用于缩放轴,但由于某种原因会破坏图形中的数据。