Во-первых, код ниже будет Set objCht
к ChartObject в ActiveSheet
(см здесь рекомендации, как держаться подальше от ActiveSheet
How to avoid using Select in Excel VBA macros)
Приведенный ниже код будет проверять, если применяется вторичная ось, если не будет добавлять его к графику. Впоследствии он изменит MinimumScale
и MaximumScale
на 20 и 50 (только случайные числа, которые я выбрал).
Код
Option Explicit
Sub chart_set()
Dim objCht As ChartObject
Dim my_max_var As Long
' just for my tests
my_max_var = 1000
' set chart object
Set objCht = ActiveSheet.ChartObjects(1)
With objCht
With .Chart.Axes(xlValue, xlPrimary)
.MinimumScale = 0
.MaximumScale = my_max_var
End With
' check if Secondary Axis is applied
If .Chart.HasAxis(xlValue, xlSecondary) = False Then
.Chart.HasAxis(xlValue, xlSecondary) = True
End If
' modify minimum and maximum values of seconday axis
With .Chart.Axes(xlValue, xlSecondary)
.MinimumScale = 20
.CrossesAt = 20
.MaximumScale = 50
End With
End With
End Sub
Благодаря Шай, только что мне нужно! – Hamidreza
Всем привет :) попробуйте использовать следующий раз 'Таблицы (« YourSheetName »)', вместо 'ActiveSheet'. это поможет вам избежать возможных ошибок –