使用单元格更改现有图表上的x / y最小值/最大值
我尝试了一些提供通用代码的网站,但没有一个对我有用
Private Sub ChartDimension()
With ActiveChart.Axes(xlCategory, xlPrimary)
.MinimumScale = .Range("B72").Value
.MaximumScale = .Range("B71").Value
End With
With ActiveChart.Axes(xlValue, xlPrimary)
.MinimumScale = .Range("B70").Value
.MaximumScale = .Range("B69").Value
End With
End Sub
“未设置对象变量或带有块变量”是我收到的错误消息
答案 0 :(得分:2)
您可以使用图表的名称或索引来引用图表。如果您也要使用代码创建图表,则可以将其构建。
Private Sub ChartDimension()
With ActiveSheet
With .ChartObjects(1).Chart.Axes(xlCategory, xlPrimary) 'or .ChartObjects("Chart 1")
.MinimumScale = Worksheets("Sheet1").Range("c1").Value
.MaximumScale = Range("c2").Value
End With
With .ChartObjects(1).Chart.Axes(xlValue, xlPrimary)
.MinimumScale = Range("c3").Value
.MaximumScale = Range("c4").Value
End With
End With
End Sub
答案 1 :(得分:1)
您应该尝试设置所有Worksheet
和ChartObjects
,这将创建更短,更清晰的代码:
修改后的代码
Option Explicit
Private Sub ChartDimension()
Dim ChtObj As ChartObject
Dim Sht As Worksheet
' set the Worksheet object
Set Sht = ThisWorkbook.Sheets("ORI -PERFO-SONIC-NOZZLES")
' set the Chart-Object
Set ChtObj = Sht.ChartObjects("Chart 1") ' rename "Chart 1" to your chart's name
With ChtObj
.Chart.Axes(xlValue, xlPrimary).MaximumScale = Sht.Range("B72").Value
.Chart.Axes(xlValue, xlPrimary).MaximumScale = Sht.Range("B71").Value
.Chart.Axes(xlValue, xlPrimary).MaximumScale = Sht.Range("B70").Value
.Chart.Axes(xlValue, xlPrimary).MaximumScale = Sht.Range("B69").Value
End With
End Sub