У меня есть набор данных, и у меня есть макрос, добавляющий строку каждые 5 секунд. Это связано со сводной таблицей и сводной диаграммой на панели инструментов.
Выглядит так (на фото моя вторая версия с инкрементной вместо декрементной)
У меня есть поле на скрытой странице, где я помещаю, сколько последних зарегистрированных строк я хочу видеть
Например, у меня есть 1000 строк, и я хочу, чтобы график панели управления нажатием кнопки переключался между «просмотреть только последний X» или «просмотреть все».
Я хочу найти более легкий способ сделать то, что я сделал, потому что я вижу большую задержку
Я добился этого, добавив в свои данные два столбца с формулой записи макроса таким образом, чтобы
Col D: дать значение линии
Col E : если значение D > 0, напишите «последние X журналов», а остальные «до X журналов».
Я поставил этот код для 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")
И я использую эти «значения» в слайсере, которые сортируют мою сводную таблицу.
благодарю вас