Отметка времени в Google Sheet Auto - PullRequest
0 голосов
/ 14 мая 2019

Я пытаюсь автоматически заполнить ячейки временем (ячейка B2 в листе "приводит")

Но, похоже, сценарий не запускается успешно. Дает мне ошибку "TypeError: Cannot read property "source" from undefined. (line 6, file "Code"

function onEdit(event) {
  var timezone = "GMT-2";
  var timestamp_format = "MM-dd-yyyy"; // Timestamp Format. 
  var updateColName = "Time";
  var sheet = event.source.getSheetByName('Leads'); //Name of the sheet where you want to run this script.

  var responseArray = ["Time"];
  var questionArray = ["Time"];

  var actRng = event.source.getActiveRange();
  var editColumn = actRng.getColumn();
  var index = actRng.getRow();
  var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues(); //get values and place them inside array 
  var dateCol = headers[0].indexOf(timeStampColName); //get index position inside the array

  for (var i = 0; i < questionArray.length; i++) {
    if (headers[0].indexOf(responseArray[1]) > -1 && index > 1 && editColumn == (headers[0].indexOf(questionArray[i]) + 1)) { // only timestamp if 'Last Updated' header exists, but not in the header row itself!

      var cell = sheet.getRange(index, (headers[0].indexOf(responseArray[i]) + 1));
      var date = Utilities.formatDate(new Date(), timezone, timestamp_format);
      cell.setValue(date);
    }
  }
}

Я перепробовал все решения, но, похоже, ничего не помогло мне.

Я хочу, чтобы ячейка B2 автоматически добавляла время, когда кто-то начинает вводить данные в ячейку A1

1 Ответ

0 голосов
/ 15 мая 2019

Этот код очень сложен для того, что вы пытаетесь достичь, чтобы быть честным.

Попробуйте использовать это:

function onEdit(e) {
  var TIME_ZONE = "GMT-2"; //enter desired timezone
  var date = Utilities.formatDate(new Date(), TIME_ZONE, 'MM-dd-yyyy'); //enter desired date format

  //if column A has been edited, set date in same row in column B
  if (e.range.getColumn() == 1) {
    var row = e.range.getRow();
    e.source.getSheetByName('Leads').getRange(row, 2).setValue(date);
  }
}

Проще говоря, этот код будет проверять, что пользовательотредактировал столбец A, в таком случае он поместит значение даты в ту же строку в столбце B.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...