У меня есть набор данных, и у меня запущен макрос, добавляющий строку каждые 5 секунд. Это связано с сводной таблицей и сводной диаграммой в панели управления.
Выглядит так (изображение - моя вторая версия с инкрементным, а не уменьшенным)
У меня есть поле на скрытой странице, где я помещаю, сколько из последней зарегистрированной строки я хочу видеть
Напримеру меня есть 1000 строк, и я хочу, чтобы график на приборной панели одним нажатием кнопки переключался между «видеть только последний X» или «видеть все»
Я хочу найти более легкий способ сделать то, что я сделалпотому что я вижу большую задержку
Я добился этого, добавив в свои данные два столбца с формулой записи макросов таким образом, чтобы
Col D: присвоить значениестрока
Col E: если значение D> 0, напишите «последние X logs», а остальные «перед X logs»
Я поставил этот код для Col D
Настройки! I4 = Поле, где я, но количество журналов я хочу Ex;15
Настройки! I5 = Где я храню последнее значение строки, которое будет использоваться в формуле, таким образом, обновляя все строки в каждой добавленной строке
setsheet.Range("I5").Value = lastrow
logsheet.Range("D" & lastfreerow).Value = ("=Settings!I4-(Settings!I5)") & "+" & setsheet.Range("I5").Text
Это запишет формулу в ячейкуи выглядят так:
=Settings!I4-(Settings!I5)+7
результатом является обратный отсчет, при котором самое последнее значение равно "15", а самое старое идет в отрицательное значение
И поместите этот код дляCol E
logsheet.Range("E" & lastfreerow).Value = "=IF(RC[-1]>0,""Last"" & "" "" & Settings!R4C[4] & "" logs"",""Before the last"" & "" "" & Settings!R4C[4] & "" logs"")"
Это написать формулу в ячейке и выглядеть следующим образом:
=IF(D8>0;"Last" & " " & Settings!I$4 & " logs";"Before the last" & " " & Settings!I$4 & " logs")
И я использую те "значения" в слайсере, которые сортируют мою сводную таблицу
спасибо