Александр Дорош
Александр Дорош личный блог
27 ноября 2014, 16:12

Помогите с макросом Excel

Есть необходимость записывать в эксель таблицу значения раздвижки в реальном времени. Я экспортирую значения инструментов из терминала и в отдельной ячейке считаю разницу. Для решения попробовал написать макрос:

Sub максрос1()
x = 8
Do While Cells(2, 8) <> «123»
Cells(5, x).Value = Cells(2, 8).Value
If Cells(5, x) <> Cells(2, 8) Then
x = x + 1
Else
x = x
End If
Loop
End Sub

 Cells(2, 8)- это ячейка с раздвижкой
 Cells(5, x) — это ячейка куда я хочу отобразить значение из Cells(2, 8)
По задумке это бесконечный цикл который «рисует» столбец значений.
Но эксель постоянно ругается то break mode то еще что.
Подскажите пожалуйста если видите ошибку.
6 Комментариев
  • Strij
    27 ноября 2014, 16:22
    Для каждого Cells необходимо .Value и 123 без кавычек
  • AlexeyTikhonov
    27 ноября 2014, 16:36
    Не делайте бесконечный цикл,
    мало того что ресурсы компа тратите зря,
    так еще и подвисать может и экспорт захлебываться.
    Вначале продумайте архитектуру приложения (не надо делать того, либо чего не происходит или того чего вам и не надо так много):
    1. Как вообще часто меняются исходные данные?
    2. Исходя иэ этого экспортируйте не чаще, а в Excel уже обрабатывайте либо по изменениям либо по таймеру, бесконечный цикл не лучшая идея
    И что такое 123?
      • AlexeyTikhonov
        27 ноября 2014, 17:01
        Александр Дорош, Application.OnTime Now + TimeValue(«00:00:05»), «Названиемакроса»

        делать как описано в справке (для остановки) через параметр false — не рекомендую-не работает;) малейшее двойное нажатие и всё — побочные часы начинают тикать.
        делать надо через отдельные кнопки старт, стоп, и через булевую переменную которая будет проверять (перед циклом), а не пора ли остановиться.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн