преобразование VBA в формулу - PullRequest
0 голосов
/ 09 января 2019

Я хотел бы, чтобы в формуле Excel можно было проверить все параметры, подобные приведенному ниже коду. Код выполняется без ошибок, если поместить его в цикл, но он медленный и у меня небольшой набор данных (около 1500 записей). то, что я похож на это код, который помещает значения "Formula.Local" в предопределенную таблицу (так что он автоматически завершается).

Итог: мне действительно нужен этот код, чтобы он работал быстрее ... Если есть способ обозначить его как "local.formula" или даже улучшить сам код, чтобы он работал быстрее, пожалуйста, дайте мне знать. Если это не ясно, пожалуйста, скажите мне, и я постараюсь объяснить лучше. Спасибо.

If comp = "AC" Then
Cells(i, 77).Value = "AC"
GoTo nextrec
End If
If state = "idle" Then
    If resp >= obj Then
        'idle but already miss deadline
        Cells(i, 77).Value = "idle miss"
    Else
    'idle but ok 
        Cells(i, 77).Value = "idle"
    End If
Else
'ended
    If resp >= obj Then
        'ended miss deadline
        Cells(i, 77).Value = "ended missed"
    Else
        'deadline ok 
        Cells(i, 77).Value = "ended ok"
    End If
End If

Ответы [ 2 ]

0 голосов
/ 10 января 2019

@ ДэвидN, точь-в-точь, это именно то, что мне нужно ... по какой-то причине я не правильно обработал множественное выражение if, я погуглил некоторые примеры, но я просто запутался еще больше. всегда правильный путь - это простой путь спасибо.

0 голосов
/ 09 января 2019

Это можно сделать с помощью одной формулы Excel без использования VBA. Следующая формула должна выполнить то, что делает ваш код.

Поскольку вы не предоставили отрывок выборочных данных, я предполагаю, что comp, state, resp, obj - это значения из других столбцов той же строки. Вы можете заменить эти значения в моей формуле соответствующей ссылкой на ячейку, а затем перетащить вниз.

=IF(comp="AC",
    "AC",
    IF(state="idle",
          IF(resp>=obj,"idle miss","idle"),
          IF(resp>=obj,"ended miss","ended ok")
      )
    )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...