@iCapusta
Автоматизация торговли, Микроинвест, 1с.

Подстановка времени в GoogleSheets, как перечислить несколько столбцов?

Задача - автоматически проставлять время в в ячейке при изменении соседней ячейки. Есть скрипт, работает корректно, но с одним набором столбцов, так как навыков в написании - 0 не смог корректно дублировать это на еще ряд столбцов. 5 - 7, 8 - 10, 11 - 13, 14 - 16, 17 - 19, 20 - 22, 23 - 25, 26 - 28, 29 - 31, 32 - 34

function onEdit(e) {
var sheet = e.source.getActiveSheet();
var idCol = e.range.getColumn();
var idRow = e.range.getRow();

  if ( sheet.getName() == 'Расход 09.19' || sheet.getName() == 'Расход 10.19' || sheet.getName() == 'Расход 11.19' || sheet.getName() == 'Расход 12.19' || sheet.getName() == 'Расход 01.20' || sheet.getName() == 'Расход 02.20' ){ //на каком листе
  var tcol = 5; //столбец который нами меняется
  var toffset = 2; //смотрим что в ближайшем столбце справа + слева -
  var trange = 7; //где вписываем
   }

if ( idCol == tcol) {// проверка столбца который нами меняется
var Value = e.range.offset(0, toffset).getValues(); // проверяем ячеку от вказаного выше сролбца
if ( Value == "" ) {

var vartoday = getTime();

sheet.getRange(idRow, trange).setValue( vartoday ); //где вписываем
}
}
}


function getTime() {
var today = new Date();
today.setDate(today.getDate());
//return Utilities.formatDate(today, 'PST', 'yyyy.MM.dd');
return Utilities.formatDate(today, 'GMT+03:00', 'HH:mm');
}
  • Вопрос задан
  • 124 просмотра
Пригласить эксперта
Ответы на вопрос 1
AnnTHony
@AnnTHony
Интроверт
function onEdit(e) {  
  var range = e.range;
  var sheet = range.getSheet();
 
  var names = ['Расход 09.19', 'Расход 10.19', 'Расход 11.19', 'Расход 12.19', 'Расход 01.20', 'Расход 02.20'];
  
  if (names.indexOf(sheet.getName()) == -1) {
    return false;
  }
  
  var col = range.getColumn();
  var row = range.getRow();
  var offset = 2;
  
  if ((col > 4) && ((col - 5) % 3 == 0)) {
    if (range.offset(0, offset).getValues() == '') {
      sheet.getRange(row, col + offset).setValue(Utilities.formatDate(new Date(), 'GMT+03:00', 'HH:mm'));
    }
  }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы