Я пытаюсь создать два листа: Лист 1: шаблон, в который студент вводит перевод слова в ячейку;Лист 2: ключ, который проверяет его по всем возможным ответам: эти два листа выглядят так:
Вот ссылка, чтобы показать две таблицы
Я пытаюсьвзять предоставленный ответ для каждого столбца в шаблоне (A: 1) и сопоставить его со всеми возможными ответами, перечисленными в соответствующем столбце в ключе (если он соответствует чему-либо между A: 1: A: 3 в ключе). Если есть совпадение, шрифт должен измениться на зеленый, и он должен перейти к следующему столбцу. Если совпадений нет, шрифт становится красным, прежде чем перейти к следующему столбцу.
Я запустил регистратор, и похоже, что он корректно просматривает данные с каждого листа. Кажется, проблема в сравнении двух столбцов.
var ui = SpreadsheetApp.getUi();
var ssA= SpreadsheetApp.getActiveSpreadsheet();
var worksheet = ssA.getSheetByName("Worksheet");
var rangeData = worksheet.getDataRange();
var lastColumn = rangeData.getLastColumn();
var lastRow = rangeData.getLastRow();
var searchRange = worksheet.getRange(2, 2, lastRow-1, lastColumn-1);
var ssB = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/1jKuxXo6o5YJjSUrQmaHR0n1ydvw7PgUl29I9mtycF_g/edit#gid=0");
var worksheetB = ssB.getSheetByName("Key");
var rangeDataB = worksheetB.getDataRange();
var lastColumnB = rangeDataB.getLastColumn();
var lastRowB = rangeDataB.getLastRow();
var searchRangeB = worksheetB. getRange(2, 2, lastRowB -1, lastColumnB -1);
function onOpen(){
ui.createMenu("Check My Translation.")
.addItem("Check Set 1", "transcheck")
.addToUi()
function transcheck(){
//iterate through the two corresponding columns in template and reference sheet
for (i = 1; i < lastColumn; i++){
for (j = 1; j < lastRow; j++){
//create the ranges to be compared and store as vars. cell and cellB
var cell = searchRange.getCell(j,i).getValue();
var cellB = searchRangeB.getCell(j,i).getValue();
//check for matches, change font accordingly
if (cell[0] === cellB[0]){
worksheet.getRange(j+1,i+1).setFontColor("green");
}else if(cell[0] =! cellB[0]){
worksheet.getRange(j+1,i+1).setFontColor("red");
Я не получаю никаких сообщений об ошибках;он просто не соответствует ячейкам / правильно меняет цвета.