Блог им. Aledor

Помогите с макросом 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 то еще что.
Подскажите пожалуйста если видите ошибку.
  • Ключевые слова:
  • Excel
6 комментариев
Для каждого Cells необходимо .Value и 123 без кавычек
avatar
Strij, Спасибо
Не делайте бесконечный цикл,
мало того что ресурсы компа тратите зря,
так еще и подвисать может и экспорт захлебываться.
Вначале продумайте архитектуру приложения (не надо делать того, либо чего не происходит или того чего вам и не надо так много):
1. Как вообще часто меняются исходные данные?
2. Исходя иэ этого экспортируйте не чаще, а в Excel уже обрабатывайте либо по изменениям либо по таймеру, бесконечный цикл не лучшая идея
И что такое 123?
avatar
AlexeyT, 123 это то значение которое никогда не будет в ячейке для бесконечности цикла.
Частота смены данных это частота сделок по Si по новой цене.
Подскажите пожалуйста оператор который задает «частоту» цикла (раз в секунду, раз в десять секунд)
Александр Дорош, Application.OnTime Now + TimeValue(«00:00:05»), «Названиемакроса»

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

теги блога Александр Дорош

....все тэги



UPDONW
Новый дизайн