У вас нет примера макроса, который бы запускался с определённым интервалом времени и копировал данные из ячейки в строки ниже? Или простой пример записи данных каждый раз с новой строки.
В моём случае данные считываются с OPC сервера (показания измерительного прибора) в ячейку формулой: =SERVOPC|CLOCK!SECOND
Датчик температуры>OPC Сервер>Excel (с определённым интервалом времени).
Данные в реальном времени считывать получается, но обновление значений температуры происходит в одной и той же ячейке, а нужно чтобы обновлённые данные записывались каждый раз на ячейку ниже (для формирования архива).
[вложение удалено администратором]
Есть два способа решить вашу задачу.
Способ 1
Макрос будет запускаться, когда будет изменяться значение в B2.
Но если на листе будет несколько формул, а не одна, как сейчас в примере формула находиться в B2, то нельзя узнать, в какой ячейке произошло изменение.
Способ 2
Можно запускать макрос через заданное кол-во времени, не зависимо от того, были изменения в B2 или нет.
В этом файле есть макрос. Как тестировать?
Откройте файл, разрешите макросы, если в B2 будут изменения, то в столбец A будут вставляться дата и время, в столбец B будут вставляться данные.
Чтобы макрос работал, сделан доплист. Его вы можете скрыть.
Этот макрос сделан на основе способа 1, о котором я писал в предыдущем ответе.
[вложение удалено администратором]
Большое спасибо за помощь!!! Работает!!!
Только в моём случае необходимо запускать макрос через заданное кол-во времени (как правило 1-10 сек), не зависимо от того, были изменения в ячейках или нет.
Можно ли как то добавить секунды в формат даты.
[вложение удалено администратором]
Создайте тему: Можно ли как то добавить секунды в формат даты?
Я в той теме отвечу.
Как тестировать? Откройте файл, разрешите макросы, автоматически запустится макрос по заполнению столбцов A:B. Если в B2 ошибка, то макрос не будет заполнять столбцы A:B (ничего происходить не будет).
Макрос запускается через 10 секунд после последнего срабатывания.
Этот способ состоит из нескольких частей.
В модуле "ЭтаКнига" есть два макроса. Один макрос запускается после открытия файла и запускает макрос. Второй макрос запускается перед закрытием файла и отключает таймер.
В модуле "PUBLICS" находится глобальная переменная.
Сам макрос находится в модуле "Module1".
Чтобы остановить таймер, сделан макрос, который находится в модуле "STOP_TIMER".
Для этого макроса можно сделать кнопку или можете запустить макрос так: вкладка "Вид" - группа "Макросы" - верхняя кнопка - выберите макрос "STOP_TIMER".
Чтобы снова включить таймер, запстите макрос "Module1.Макрос".
Доплист для данного способа не используется.
[вложение удалено администратором]
Огромное спасибо! Всё работает как часы (данные с прибора добавляются и архивируются)!!!
Как правильно прописать в макросе адрес исходной ячейки (откуда будут копироваться данные) расположенной на другом листе (Лист2)?
[вложение удалено администратором]
смотрите файл
[вложение удалено администратором]