在vba中图表对象Chart的Axes方法可以返回图表的坐标轴。
它可以返回单个坐标轴(横坐标轴或者纵坐标轴)或者所有坐标轴的集合。
它的语法如下:
expression. Axes( _Type_ , _AxisGroup_ )
其中Type参数为要返回的坐标轴的类型,可以是以下值:
| 名称 | 值 | 说明 |
| xlCategory | 1 | 横坐标轴 |
| xlValue | 2 | 纵坐标轴 |
| xlSeriesAxis | 3 | 系列坐标轴 |
AxisGroup参数为要返回主坐标轴还是次坐标轴,可以是以下值:
| 名称 | 值 | 说明 |
| xlPrimary | 1 | 主坐标轴 |
| xlSecondary | 2 | 次坐标轴 |
在vba中Axis对象表示图表中的单个坐标轴,Axes对象表示图表中的坐标轴集合。
如果要返回坐标轴集合,只需将Axes方法的两个参数省略即可。
以下vba代码举例说明了如何设置图表的纵坐标轴的最大、最小刻度值以及坐标轴的单位和横坐标轴显示的数值格式。
Sub QQ1722187970()
'创建内嵌的图表
Dim oWK As Worksheet
Set oWK = Sheet1
Dim oChart As Chart
Set oChartObject = oWK.ChartObjects(1)
Set oChart = oChartObject.Chart
Dim oSeries As Series
Dim oTL As TickLabels
'单个坐标轴
Dim oA As Axis
'坐标轴集合
Dim oAS As Axes
Dim vXV
Dim vValues
Dim vBS
With oChart
'设置纵坐标
Set oAZ = .Axes(xlValue, xlPrimary)
With oAZ
'坐标轴的大单位
.MajorUnit = 10
'坐标轴的小单位
.MinorUnit = 5
'最小刻度值
.MinimumScale = 0
'最大刻度值
.MaximumScale = 100
'横坐标交叉于纵坐标的具体刻度值
.CrossesAt = 10
Set oTL = .TickLabels
'设置坐标轴的数值标记的数值格式
With oTL
.NumberFormat = "0"
End With
End With
'设置横坐标
Set oAH = .Axes(xlCategory, xlPrimary)
With oAH
Set oTL = .TickLabels
'设置坐标轴的数值标记的数值格式
With oTL
.NumberFormat = "0"
End With
End With
End With
End Sub


发表评论