Александр Дорош
Александр Дорош личный блог
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 — не рекомендую-не работает;) малейшее двойное нажатие и всё — побочные часы начинают тикать.
        делать надо через отдельные кнопки старт, стоп, и через булевую переменную которая будет проверять (перед циклом), а не пора ли остановиться.

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

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