Скрипт Google Apps для GSheet - найдите сегодняшнюю дату в столбце B и напишите текущее время в столбце C той же строки. - PullRequest
0 голосов
/ 04 марта 2020

Я пытаюсь написать скрипт приложения и назначить его кнопке. Когда кнопка нажата, она активирует функцию, которую я назвал clockin(). Эта функция ищет текущую дату в столбце B и записывает текущее время в столбец C. Проблема в том, что этот код не записывает какое-либо значение в определенную ячейку, что вроде как отстой. Я новичок в Javascript, поэтому нуждаюсь в вашей помощи. Мой код ниже:

function todayDateNowTime () {
  const monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
  var today = new Date()
  var month = monthNames[today.getMonth()]; //months from 1-12
  var day = today.getDate();
  var year = today.getFullYear();
  var seconds = today.getSeconds();
  var minutes = today.getMinutes();
  var hour = today.getHours();

  var todayDate = day+"-"+month+"-"+year;
  var nowTime = hour+":"+minutes+":"+seconds;

  console.log(todayDate);
  console.log(nowTime);

  return todayDate, nowTime;
}


function clockin(todayDate, nowTime) {
  todayDate, nowTime = todayDateNowTime();
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var data = sheet.getDataRange().getValues();
  for(var i = 0; i<data.length;i++){
    if(data[i][1] == todayDate) { //[1] because column B
      var range = SpreadsheetApp.getActiveSpreadsheet().getActiveCell("C"+i)
      range.setValue(nowTime);
    }
  }
}

Я сделал мой gsheet публично доступным для просмотра прямо здесь .

Я также добавил сюда скриншот, если он поможет: enter image description here

1 Ответ

1 голос
/ 04 марта 2020

Я внес небольшие изменения в ваш код. Посмотри, работает ли оно сейчас?

function todayDateNowTime () {
const monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", 
"Aug", "Sep", "Oct", "Nov", "Dec"];
var today = new Date()
var month = monthNames[today.getMonth()]; //months from 1-12
var day = today.getDate();
day = day < 10 ? "0" + day : day;
var year = today.getFullYear();
var seconds = today.getSeconds();
var minutes = today.getMinutes();
var hour = today.getHours();  
var todayDate = day+"-"+month+"-"+year;
var nowTime = hour+":"+minutes+":"+seconds;

return [todayDate, nowTime];
}

function clockin() {
var dateAndTime = todayDateNowTime();
var todayDate = dateAndTime[0];
var nowTime = dateAndTime[1];
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getDataRange().getDisplayValues();
for(var i = 0; i<data.length;i++){
  if(data[i][1] == todayDate) { //[1] because column B
  var range = sheet.getRange(i+1, 3)
  range.setValue(nowTime);
  }
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...