我正在寻找一种方法,使主轴和次轴使用相同数量的步骤(因此轴线总是对齐两个轴)。
目前,我的主轴有5个步骤,我的次级有6个步骤。我希望两个轴都有相同的步数。
这个是可能的吗?
图表数据在验证列表中所做的选择上有所不同。这方面的程序:
在仪表板上,用户选择5个选项:
事实1和事实2在主轴上;事实3在第二轴上。
与在1-5下作出的选择相对应的数值有很大差异。因此,主轴和次轴的值有很大的变化(在每一个新的选择中)。
对于每一个新的选择,代码都应该计算出两个轴的新的最小值和最大值以及主单元,这样两个轴的主要网格线的数目是相同的。
我想上述情况应该是由worksheet_change事件触发的。但是,我想知道如何为主轴和次轴设置主单元。
编辑:
我刚刚找到了这个网站的vba代码,它应该做我想做的事情。我还没试过,但我会的。
http://www.myengineeringworld.net/2015/04/adjust-secondary-y-axis-scale-chart-vba.html
发布于 2016-05-10 12:08:54
是的,只是将相同的值赋值给主轴和次轴。
编辑:那么你只是想要有人为你写代码?我的回答正是你的问题:是否可能.下面的代码将对齐次轴和主轴min和max,因此majorUnit可能是相同的。如果不是,那么更新宏就不难做到这一点。如果这是不可能的,请告诉我
Sub alignAxis()
Dim mySheet As Worksheet
Set mySheet = Sheets("Sheet3")
Dim primaryMax As Integer
Dim primaryMin As Integer
Dim secondaryMax As Integer
Dim secondaryMin As Integer
Dim max As Integer
Dim min As Integer
With mySheet
With .ChartObjects("myChart").Chart.Axes(xlValue)
primaryMin = .MinimumScale
primaryMax = .MaximumScale
End With
With .ChartObjects("myChart").Chart.Axes(xlValue, xlSecondary)
secondaryMin = .MinimumScale
secondaryMax = .MaximumScale
End With
If primaryMax > secondaryMax Then
max = primaryMax
Else
max = secondaryMax
End If
If primaryMin < secondaryMin Then
min = primaryMin
Else
min = secondaryMin
End If
With .ChartObjects("myChart").Chart.Axes(xlValue)
primaryMin = min
primaryMax = max
End With
With .ChartObjects("myChart").Chart.Axes(xlValue, xlSecondary)
secondaryMin = min
secondaryMax = max
End With
End With
End Subhttps://stackoverflow.com/questions/37137843
复制相似问题