在我的Excel工作簿中,我的瀑布图轴值根据两个单元格中的值而变化 我限制了我的用户使用set cell作为较低的值而另一个作为较高的值。 问题是,他们不知道哪个项目值更低或更高,直到他们从下拉列表中选择它并查看从另一个工作表中提取的值。
我希望IF
语句能够找出两个值中的哪一个更大,并将该值指定为最大值,将另一个值指定为最小值。
我的代码:
Sub Worksheet_Calculcate()
Dim objCht As ChartObject
For Each objCht In Sheets("Price Bridge Chart").ChartObjects
With objCht.Chart
' Value (Y) Axis
With .Axes(xlValue)
.MaximumScale = ActiveSheet.Range("$D$68").Value + 500000
.MinimumScale = ActiveSheet.Range("$C$68").Value - 500000
' .MajorUnit = ActiveSheet.Range("$K$3").Value / 10 'Chart horizontal lines
.MajorUnit = (.MaximumScale - .MinimumScale) / 10
End With
End With
Next objCht
End Sub
我可能需要添加两个额外的变量,但我试图让解决方案尽可能简单。
答案 0 :(得分:1)
IF
语句。
Sub Worksheet_Calculcate()
Dim objCht As ChartObject
Dim AxisOne As Long
Dim AxisTwo As Long
For Each objCht In Sheets("Price Bridge Chart").ChartObjects
AxisOne = ActiveSheet.Range("$D$68").Value
AxisTwo = ActiveSheet.Range("$C$68").Value
With objCht.Chart
' Value (Y) Axis
With .Axes(xlValue)
If AxisOne > AxisTwo Then
.MaximumScale = AxisOne + 500000
.MinimumScale = AxisTwo - 500000
Else
.MaximumScale = AxisTwo + 500000
.MinimumScale = AxisOne - 500000
End If
' .MajorUnit = ActiveSheet.Range("$K$3").Value / 10 'Chart horizontal lines
.MajorUnit = (.MaximumScale - .MinimumScale) / 10
End With
End With
Next objCht
End Sub