если значение равно значению в другой электронной таблице

#google-apps-script #google-sheets

#google-apps-script #google-sheets

Вопрос:

у меня есть система, в которой пользователи вводят информацию в форму Google, а appscript помещает информацию в календарь.

мне интересно, есть ли возможность заставить appscript проверять, соответствует ли введенная информация чему-либо из другой электронной таблицы (т.Е. Черный список запрещенной информации)

Я полагаю, что могу сделать что-то вроде:

 var name = sheet.getRange(lr,name,1,1).getValue();
var ban = SpreadsheetApp.openById('ID of another sheet').getValue();
if (name == ban){
return;
};
 

но, видимо, я ошибаюсь, и это не работает.
я думаю, что есть две проблемы с тем, что я пытаюсь сделать:
1. код для получения значений с другого листа не работает
2. значения с другого листа — это не одно значение, а несколько имен в столбце, поэтому я не могу сравнить переменные name и ban (либо это, либо значения не могут быть записаны в одну переменную)

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

 var ban=i,i  ;
 

или что-то в этих строках, но то, что я ввел, кажется неправильным, поскольку оно не работает.

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

Прошу прощения, если я допустил какую-то глупую ошибку в коде, я на самом деле не знаю, как кодировать, я просто гуглю и смешиваю коды, которые нахожу в Интернете.
Спасибо

Комментарии:

1. внимательно посмотрите, что ваш код делает с электронной таблицей. он получает значение … чего? какой лист? какая ячейка? это ваша проблема.

Ответ №1:

Прежде всего, я предполагаю, что вы определили переменную sheet примерно так:

 var sheet = SpreadsheetApp.openById("ID of sheet where the data is stored").getSheetByName("Name");
 

Следующим шагом будет определение запрета переменных следующим образом:

 var ban = SpreadsheetApp.openById("ID of another sheet").getSheetByName("Name").getDataRange().getValues();
 

Теперь проверяется та часть, в которой информация соответствует или нет.

 var count=0;

for(var i=0;i<ban.length;i  )
{
   if(name==ban[i])
   {
      count  ;
   }
}

if(count!=0)
{
   Logger.log("Match found");
}
 

Чтобы проверить вывод кода при его запуске, вам нужно нажать CTRL ENTER … это откроет журналы, в которых, если вы найдете журнал как «Найдено совпадение» … это означает, что код правильный…в противном случае может быть какая-то другая ошибка … возможно, формат данных электронной таблицы, в которой хранятся запрещенные значения.