Я пытаюсь создать панель мониторинга в Excel 2010 для моего отдела, которая будет максимально автоматизирована. Итак, у меня есть таблица с данными, которые будут обновляться в каждой ячейке каждый месяц или неделю. Теперь моя проблема в том, что, когда кто-то переходит и меняет значение ячейки на новое значение для нового месяца, я не хочу терять предыдущее значение предыдущего месяца.

Есть ли какой-нибудь возможный способ автоматически каждый раз сохранять значения ячеек в таблице, сохраняя все старые? В частности, я хотел бы сохранить копию всей истории таблицы, например, в течение 12 месяцев на другом листе. До сих пор я использовал код в VBA, который сохраняет строку, в которой происходит каждое изменение, но не расширяется, т. Е. Когда изменение происходит в другой строке, изменения будут отображаться точно в том же месте, где была предыдущая история. Кроме того, функция срабатывает сразу после нажатия на ячейку. Я бы предпочел, чтобы функция сохраняла данные только после внесения изменений в значение ячейки. Есть ли кто-нибудь, кто может помочь мне решить эту проблему?

Спасибо!!

1 ответ1

0

Без каких-либо знаний о том, как выглядит ваша таблица, или о том, насколько она велика и сложна, вот два варианта:

1. Предварительно создать вкладки

ЕСЛИ изменения всегда делаются на одном и том же интервале (т.е. Ежемесячно, еженедельно и т.д.). Почему бы не создать рабочую книгу с отдельными вкладками для каждого интервала, в который вы вносите изменения? Например, если вы обновляете ячейки ежемесячно, имейте вкладку для каждого месяца.

Просто попросите каждый лист ссылаться на предыдущий. Таким образом, каждая ячейка в таблице февраля будет отображать то, что находится в каждой ячейке таблицы января, пока вы не обновите ячейки. Тогда таблица марта будет автоматически ссылаться на таблицу февраля и так далее. Это простой способ сделать это, и он будет работать, пока ваша команда достаточно компетентна, чтобы обновить правильную вкладку.

2. Создать макрос

Другой вариант - создать макрос, который автоматически продублирует лист с вашей таблицей, назовет его в качестве текущей даты и времени и переместит в конец. затем вы можете связать макрос с кнопкой, чтобы после внесения необходимых изменений в «основную таблицу» он или она просто нажал кнопку. Такой макрос может выглядеть так:

Sub SaveTable()

Dim CurrentDate As String, CurrentTime As String

CurrentDate = Format(Date, "MMM DD, YYYY")
CurrentTime = Format(Time, "HHMM")

Sheets("Table").Copy After:=Worksheets(Worksheets.Count)
Sheets(Worksheets.Count).Name = CurrentDate & " " & CurrentTime

End Sub

Просто замените "Таблица" на то, что вы хотите назвать своим основным листом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .