2017-01-01 4 views
0

По следующему коду Макс. и Мин. устанавливается шкала для первичной горизонтальной оси X диаграммы в vba;Максимальный масштаб вторичной горизонтальной оси X VBA

Sub chart_set() 
    Dim objCht As ChartObject 
    With ActiveSheet.ChartObjects(1).Chart.Axes(xlValue) 
    .MinimumScale = 0 
    .MaximumScale = my_max_var 
    End With 
End Sub 

Есть ли способ установить вторичный вариант?

ответ

1

Во-первых, код ниже будет Set objCht к ChartObject в ActiveSheet (см здесь рекомендации, как держаться подальше от ActiveSheetHow 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 
+0

Благодаря Шай, только что мне нужно! – Hamidreza

+1

Всем привет :) попробуйте использовать следующий раз 'Таблицы (« YourSheetName »)', вместо 'ActiveSheet'. это поможет вам избежать возможных ошибок –

Смежные вопросы