function onEdit(e) { var sheet = e.source.getActiveSheet(); var idCol = e.range.getColumn(); var idRow = e.range.getRow(); if ( idCol == 1 ) { sheet.getRange(idRow, idCol + 1).setValue(new Date().toString()); } };
[/vba]
При редактировании ячейки добавляется дата в соседнюю ячейку и в дальнейшем при редактировании дата просто обновляется.
Подскажите, что изменить в скрипте, чтобы старая дата изменения ячейки сохранялась. Т.е., чтобы новая дата постоянно дописывалась и таким образом велась история изменений.
Здравствуйте!
На данном форуме нашел следующий скрипт: [vba]
Код
function onEdit(e) { var sheet = e.source.getActiveSheet(); var idCol = e.range.getColumn(); var idRow = e.range.getRow(); if ( idCol == 1 ) { sheet.getRange(idRow, idCol + 1).setValue(new Date().toString()); } };
[/vba]
При редактировании ячейки добавляется дата в соседнюю ячейку и в дальнейшем при редактировании дата просто обновляется.
Подскажите, что изменить в скрипте, чтобы старая дата изменения ячейки сохранялась. Т.е., чтобы новая дата постоянно дописывалась и таким образом велась история изменений.evgenij_vl
Сообщение отредактировал evgenij_vl - Понедельник, 24.04.2017, 12:50
чтобы новая дата постоянно дописывалась и таким образом велась история изменений.
Постоянно дописывалась - во всё новые ячейки правее? Или в одну и ту же соседнюю правую ячейку через какой-нибудь разделитель, скажем, через точку с запятой?
чтобы новая дата постоянно дописывалась и таким образом велась история изменений.
Постоянно дописывалась - во всё новые ячейки правее? Или в одну и ту же соседнюю правую ячейку через какой-нибудь разделитель, скажем, через точку с запятой?Gustav
Постоянно дописывалась - во всё новые ячейки правее? Или в одну и ту же соседнюю правую ячейку через какой-нибудь разделитель, скажем, через точку с запятой?
В одну и ту же ячейку с разделителем. Можно через точку с запятой.
Постоянно дописывалась - во всё новые ячейки правее? Или в одну и ту же соседнюю правую ячейку через какой-нибудь разделитель, скажем, через точку с запятой?
В одну и ту же ячейку с разделителем. Можно через точку с запятой.evgenij_vl
Если не будет раздражать самая первая точка с запятой в ячейке истории, то самой малой кровью можно обойтись так: [vba]
Код
function onEdit(e) { var sheet = e.source.getActiveSheet(); var idCol = e.range.getColumn(); var idRow = e.range.getRow(); if ( idCol == 1 ) { var rngHist = sheet.getRange(idRow, idCol + 1); rngHist.setValue(rngHist.getValue()+"; "+ new Date()); } }
[/vba] Если же будет раздражать, а также если вместо такого формата даты "Mon Apr 24 2017 14:31:59 GMT+0300 (EAT)" захочется чего-то более родного типа "24.04.17", то надо будет еще понапрягаться...
Если не будет раздражать самая первая точка с запятой в ячейке истории, то самой малой кровью можно обойтись так: [vba]
Код
function onEdit(e) { var sheet = e.source.getActiveSheet(); var idCol = e.range.getColumn(); var idRow = e.range.getRow(); if ( idCol == 1 ) { var rngHist = sheet.getRange(idRow, idCol + 1); rngHist.setValue(rngHist.getValue()+"; "+ new Date()); } }
[/vba] Если же будет раздражать, а также если вместо такого формата даты "Mon Apr 24 2017 14:31:59 GMT+0300 (EAT)" захочется чего-то более родного типа "24.04.17", то надо будет еще понапрягаться...Gustav
Если не будет раздражать самая первая точка с запятой в ячейке истории, то самой малой кровью можно обойтись так
Спасибо за направление.
Сделал так: [vba]
Код
function onEdit(e) { var sheet = e.source.getActiveSheet(); var idCol = e.range.getColumn(); var idRow = e.range.getRow(); var d = new Date(); var curr_date = d.getDate(); var curr_month = d.getMonth() + 1; var curr_year = d.getFullYear(); var h = d.getHours(); var m = d.getMinutes(); var s = d.getSeconds();
Если не будет раздражать самая первая точка с запятой в ячейке истории, то самой малой кровью можно обойтись так
Спасибо за направление.
Сделал так: [vba]
Код
function onEdit(e) { var sheet = e.source.getActiveSheet(); var idCol = e.range.getColumn(); var idRow = e.range.getRow(); var d = new Date(); var curr_date = d.getDate(); var curr_month = d.getMonth() + 1; var curr_year = d.getFullYear(); var h = d.getHours(); var m = d.getMinutes(); var s = d.getSeconds();