Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.08.2018, 15:46   #1
Олег_Архипка
Новичок
Джуниор
 
Регистрация: 20.08.2018
Сообщений: 1
По умолчанию автоматическая запись в таблицу значений, меняющихся каждую минуту

Задача:
Дано: в открытом листе Excel заполнены две ячейки, содержащие данные, которые меняются автоматически каждую минуту
A1 - текущее время, формула ячейки: ТДАТА
B1 – возвращает числовое значение из другой ячейки другого листа, в которую значения поступают из интернета, значения меняются с циклом обновления 1 минута.
Требуется: создать динамическую таблицу значений в столбцах CD, начиная со второй строки
С2 – зафиксированное время и D2 – соответствующее этому времени значение из B1
С3 – зафиксированное время и D3 – соответствующее этому времени значение из B1
… и так далее, временной шаг записи данных 1 минута.
Каждую минуту должна создаваться новая строка в таблице с соответствующими новыми данными, при этом предыдущие данные таблицы должны сохраняться в неизменном виде.
Процесс останавливается только при закрытии таблицы. При новом открытии таблицы запись должна быть продолжена т.е. все данные которые были при закрытии таблицы так же сохраняются и новая строка будет создаваться под последней строкой, созданной в момент закрытия.
Весь процесс должен происходить в автоматическом режиме.
Каким образом можно решить данную задачу?
Если бы была функция, которая автоматически сохраняла значение переменной в данный момент времени так что бы в последствии это значение уже более не менялось вслед за переменной – то для решения данной задачи можно было бы обойтись стандартным функциями Excel, даже не прибегая к макросам. К сожалению я такой функции не нашел. Если такая есть – подскажите, если нет помогите найти решение другими средствами.
Олег_Архипка вне форума Ответить с цитированием
Старый 21.08.2018, 04:42   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Т. к. у Вас данные
Цитата:
меняются автоматически каждую минуту
, то нет необходимости организовывать временной интервал для перезаписи этих обновленных данных. Достаточно перезаписывать эти значения в наращиваемую таблицу по событию обновления данных.
Т. к. данные обновляются какой-то внешней процедурой, то применять событие Worksheet_Change может оказаться проблематичным. Но, благодаря наличию на рабочем листе волатильной (автопересчитываемой) функции ТДАТА, можно использовать событие пересчета листа.
Для этого, в модуль требуемого листа поместите код:
Код:
Private Sub Worksheet_Calculate()
    Dim i As Long: i = Cells(Rows.Count, 3).End(xlUp).Row + 1
    Application.EnableEvents = False
    Cells(i, 3) = [A1]: Cells(i, 4) = [B1]
    Application.EnableEvents = True
End Sub
Затем, сохраните книгу с поддержкой макросов (в формате .xlsm).
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись значений в таблицу Scorpuha БД в Delphi 25 14.11.2013 16:55
Запись в файл каждую неделю bookkc Помощь студентам 1 12.01.2012 02:31
добавить символ в каждую запись в столбце andrei186 SQL, базы данных 2 28.10.2011 13:23
Автоматическая замена значений Mr.Jass Microsoft Office Excel 8 23.11.2010 17:20
Word. автоматическая замена значений belikk Microsoft Office Word 8 07.03.2009 11:03