用
Access
调整双轴图坐标及
Excel
中方法对比
关键字:双轴图
趋势图
vba excel access
坐标
由于经常要画双轴图,常常碰到左轴有负数,
右轴没有负数,
希望将
0
轴坐标对齐。当
然,一个图的话手工改就可以了,如果每个月都要画上百个呢?所以想到用
vba
自动调整,
查了网上资料,
很少这方面的专题文章。
经摸索,
初步写了一些代码,
可能还有进一步优化
的空间,
权当抛砖引玉。
以下用
excel
控制双轴图、
用
access
控制双轴图、
用
access
打开
excel
并控制其双轴图三种方法进行列举比较,与大家分享。
一:用
excel
调整双轴图
Private Sub CommandButton2_Click()
ChartObjects("
图表
1").Activate
With ActiveChart.Axes(xlV
alue)
ccc = .MajorUnit
'
左轴间距
aaa = .MaximumScale
'
左轴最大值
bbb = .MinimumScale
'
左轴最小值
End With
With ActiveChart.Axes(xlV
alue, xlSecondary)
.MinimumScaleIsAuto = True
.MaximumScaleIsAuto = True
.MajorUnitIsAuto = True
aa2 = .MaximumScale
'
右轴最大值
Call mm(aaa, bbb, ccc, aa2, aa3, aa4)
'aa
左大
bb
左小
cc
左距
aa2
右大
aa3
右小
aa4
右间距
.MinimumScale = aa3
.MaximumScale = aa2
.MajorUnit = aa4
End With
End Sub
Sub mm(aa, bb, cc, dd, ee, aa4)
'aa
左大
bb
左小
cc
左距
dd
右大
ee
右小
aa4
右间距
If bb > 0 Then bb = 0
ff = dd * 10 Mod (aa / cc)
If ff = 0 Then ff = aa / cc
dd = dd + ff / 10
If dd > (2 * aa / cc) Then
aa4 = Round(dd / (aa / cc), 0)
Else
aa4 = Round(dd / (aa / cc), 1)
End If
dd = aa4 * (aa / cc)
ee = dd * bb / aa
End Sub