Добавление IF в переменную COLUMNTOCHECK - PullRequest
0 голосов
/ 12 декабря 2018

Я пытаюсь добавить оператор if в мою строку var COLUMNTOCHECK, чтобы он проверял столбец на предмет определенного значения, а не только того, что что-то находится в ячейке.Это мой сценарий до сих пор.Я хочу сделать так, чтобы отметка времени активировалась только в том случае, если указанный столбец (-ы) содержат слова «UC Phone».Я хочу, чтобы он проверил, верно ли это в столбцах 5, 6 или 7.

var COLUMNTOCHECK = 5;

var DATETIMELOCATION = [0,13];

var SHEETNAME = ('December 17, 2018')

function check() {

  return true;
}

function onEdit(e) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();

  if( sheet.getSheetName() == SHEETNAME ) { 
    var selectedCell = ss.getActiveCell();

    if( selectedCell.getColumn() == COLUMNTOCHECK)
    { 
      var dateTimeCell = selectedCell.offset(DATETIMELOCATION[0],DATETIMELOCATION[1]);
      dateTimeCell.setValue(new Date());

      }
  }
}

Я довольно плохо знаком со сценариями в Google Sheets, поэтому я работал над кодом, который я нашелпаутина.

1 Ответ

0 голосов
/ 27 декабря 2018

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

Ваша функция OnEdit (e) известна как «простой» триггер.
Параметр «e» позволяет вам захватыватьи использовать семь частей информации о событии редактирования.Вот список информации здесь в Документации Google .
Я создал запись Logger.log для каждого значения, чтобы вы могли видеть возвращаемую информацию.

function onEdit(e) {
    // so_53748818
    // Setup spreadsheet and target sheet
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getActiveSheet();

    // setup some variables
    var SHEETNAME = ('53748818');
    var COLUMNTOCHECK = 5;
    var valuetocheck = "UC Phone";
    var DATETIMELOCATION = [0, 13];
    var counter = 0;

    // get and display the (e) event information
    var debug_e = {
        authMode: e.authMode,
        range: e.range.getA1Notation(),
        source: e.source.getId(),
        user: e.user,
        value: e.value,
        oldValue: e.oldValue
    };
    Logger.log("AuthMode: " + debug_e.authMode);// DEBUG
    Logger.log("Range: " + debug_e.range);// DEBUG
    Logger.log("Source: " + debug_e.source);// DEBUG
    Logger.log("User: " + debug_e.user);// DEBUG
    Logger.log("user email" + debug_e.user.getEmail());// DEBUG
    Logger.log("Value: " + debug_e.value);// DEBUG
    Logger.log("Old value: " + debug_e.oldValue);// DEBUG
    //Logger.log("AuthMode: "+debug_e.authMode+", Range: "+debug_e.range+", source: "+debug_e.source+", user: "+debug_e.user+", value: "+debug_e.value+", old value: "+debug_e.oldValue);// DEBUG


    // get the row number
    var editRow = e.range.getRow();
    Logger.log("the Row edited was " + editRow);// DEBUG

    // Assumes that the edit field is in Column D
    var checkrange = sheet.getRange(editRow, COLUMNTOCHECK, 1, 3)
    Logger.log("checkrange = " + checkrange.getA1Notation());// DEBUG
    var checkvalues = checkrange.getValues();

    // loop through the values in columns E, F & G
    for (var i = 0; i < 3; i++) {
        Logger.log("i: " + i + ", value: " + checkvalues[0][i]);// DEBUG
        if (checkvalues[0][i] == valuetocheck) {
          counter = counter + 1; // add one to the counter for each value matched
        }
    }
    if (counter == 3) { // if counter is 3, then all the cells contained the value
        Logger.log(" the counter is " + counter + ", so the date is inserted in column 13 (Q)");// DEBUG
        var dateTimeCell = e.range.offset(DATETIMELOCATION[0], DATETIMELOCATION[1]);
        dateTimeCell.setValue(new Date());
    } else { // the else is not strictly required, but included so that the counter value can be displayed for debug purposes.
        Logger.log(" the counter is " + counter + ", so the date is NOT inserted in column 13 (Q)");// DEBUG
    }

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