#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 … это откроет журналы, в которых, если вы найдете журнал как «Найдено совпадение» … это означает, что код правильный…в противном случае может быть какая-то другая ошибка … возможно, формат данных электронной таблицы, в которой хранятся запрещенные значения.