Nano Hash - криптовалюты, майнинг, программирование

Операторы If/ElseIf работают только для первого оператора if

Мои операторы If (ElseIf) кажутся только для первого оператора If. Я не уверен, что мне здесь не хватает. Это для диаграммы, границы которой меняются в зависимости от значений ячеек C3:D11. Диаграмма, по сути, представляет собой два перекрывающихся графика, поэтому у меня есть значение вторичной оси. Обе оси должны измениться в разделе IfElse.

Sub Pyramid()

       Dim cht As Chart
       Set cht = Worksheets("AP-Chart").ChartObjects("Chart 4").Chart
       For Each cell In Range("C3:D11")


        If cell.Value < -15 Then
            cht.Axes(xlCategory).MinimumScale = -20
            cht.Axes(xlValue, xlSecondary).MinimumScale = -20
        ElseIf cell.Value > 15 Then
            cht.Axes(xlCategory).MaximumScale = 20
            cht.Axes(xlValue, xlSecondary).MaximumScale = 20
        ElseIf cell.Value < -20 Then
            cht.Axes(xlCategory).MinimumScale = -30
            cht.Axes(xlValue, xlSecondary).MinimumScale = -30
        ElseIf cell.Value > 20 Then
            cht.Axes(xlCategory).MaximumScale = 30
            cht.Axes(xlValue, xlSecondary).MaximumScale = 30
        ElseIf cell.Value < -30 Then
            cht.Axes(xlCategory).MinimumScale = -40
            cht.Axes(xlValue, xlSecondary).MinimumScale = -40
        ElseIf cell.Value > 30 Then
            cht.Axes(xlCategory).MaximumScale = 40
            cht.Axes(xlValue, xlSecondary).MaximumScale = 40
        ElseIf cell.Value < -40 Then
            cht.Axes(xlCategory).MinimumScale = -50
            cht.Axes(xlValue, xlSecondary).MinimumScale = -50
        ElseIf cell.Value > 40 Then
            cht.Axes(xlCategory).MaximumScale = 50
            cht.Axes(xlValue, xlSecondary).MaximumScale = 50
        End If
       Next cell

       ActiveSheet.ChartObjects("Chart 4").Activate
       ActiveChart.ChartArea.Select
       myPDF = "\\stchsfs\arboari$\Profile-Data\Desktop\Export Trial1\c1-" & Sheets("AP").Range("C" & i + 3).Value2 & ".pdf"
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=myPDF, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    i = i + 1
     Next counter

End Sub

Спасибо!


  • Рассмотрим Select Case, где вы можете использовать операторы стиля Case -20 to -15 для описания диапазонов. Операторы if ... elseif могут запутаться и их трудно поддерживать (как вы только что узнали!) 21.04.2018

Ответы:


1

Это просто, ваши операторы if else неверны.

-20 ниже, чем -15, поэтому он всегда делает то, что находится внутри первого If.

Вы должны сделать что-то вроде:

If cell.Value < -15 And cell.Value > -20 Then
    cht.Axes(xlCategory).MinimumScale = -20
    cht.Axes(xlValue, xlSecondary).MinimumScale = -20
ElseIf cell.Value < -20 And cell.Value > -30 Then
    //do stuff here

И ты продолжаешь в том же духе. Вы должны сделать то же самое с положительными значениями, и я думаю, что вы не рассматриваете значения -20, -30 и т. д. (потому что вы их исключаете).

20.04.2018
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..