Пропуск линий в VBA (Loop / If Statements) - Изменения границ оси диаграммы - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть цикл, который просматривает данные и помещает их в другой лист для создания диаграммы. Однако, поскольку у меня широкий диапазон данных, я хочу, чтобы границы вертикальной оси изменялись в зависимости от значения ячейки. Я попытался создать раздел кода, чтобы следовать ему. Однако в этом разделе читаются только 3 строки, остальные строки пропускаются. Я запустил код, затем вошел в него, и именно тогда я заметил. Может кто-нибудь помочь мне выяснить, почему эти строки пропускаются?

Пропущенные строки:

cht.Axes(xlValue).MinimumScale = 10
ElseIf cell.Value >= 40 And cell.Value < 60 Then
cht.Axes(xlValue).MinimumScale = 20
ElseIf cell.Value >= 60 Then
cht.Axes(xlValue).MinimumScale = 40

Вот полный код:

Sub Loop()

   Range("E2").Select
    ActiveCell.Range("D1:E1").Select

Dim myPDF As String
Dim i As Long

    For counter = 5 To 21
        Sheets("Lang").Select
        Range("'Lang'!$E$" & counter & ":$F$" & counter).Select 'numbers
        Selection.Copy
        Sheets("Lang-Chart").Select
        Range("B1:C1").Select
        ActiveSheet.Paste
        Sheets("Lang").Select
        Range("'Lang'!$G$" & counter & ":$I$" & counter).Select 'labels
        Selection.Copy
        Sheets("Lang-Chart").Select
        Range("A2:C2").Select
        ActiveSheet.Paste

       Dim cht As Chart
Set cht = Worksheets("Lang-Chart").ChartObjects("Chart 2").Chart
For Each cell In Range("B1:C2")

    If cell.Value >= 10 And cell.Value < 40 Then
        cht.Axes(xlValue).MinimumScale = 10
    ElseIf cell.Value < 10 Then
        cht.Axes(xlValue).MinimumScale = 0
    ElseIf cell.Value >= 40 And cell.Value < 60 Then
        cht.Axes(xlValue).MinimumScale = 20
    ElseIf cell.Value >= 60 Then
        cht.Axes(xlValue).MinimumScale = 40
   End If
    Next cell


       ActiveSheet.ChartObjects("Chart 2").Activate
       ActiveChart.ChartArea.Select
       myPDF = "\\stchsfs\arboari$\Profile-Data\Desktop\Sample 20\c3-" & Sheets("Lang").Range("D" & i + 2).Value2 & ".pdf"
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=myPDF, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
        i = i + 1
     Next counter

End Sub

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...