Как мне заменить значение в одной ячейке на основе значения в другой ячейке?

#javascript #google-apps-script #google-sheets

#javascript #google-приложения-скрипт #google-таблицы

Вопрос:

 function CopyinData_AM_A() {
/* Edit the vars below this line for your needs */
var sourceSheet  = "Students AM" ;  // Enter the name of the sheet with the source data
var sourceRange = "B7:N77" ; // Enter the range of the cells with the source data
var targetSheet = "Students AM A" ; // Enter the name of the target sheet
var targetRange = "B7:N77" ; // Enter the range of cells you wish to copy data to. Note this must be same size as source range.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(sourceSheet);
var values = sheet.getRange(sourceRange).getValues();
ss.getSheetByName(targetSheet).getRange(targetRange).setValues(values);
}
 

Как мне добавить это в приведенный выше сценарий? Действие должно произойти после копирования данных на лист. Я всего лишь программист VB. ‘Students AM A’ — это таблица без формул.

       For each cell inStudents AM A'!N7:N77 then
              If Ncell= ‘Menu!D14' then Hcell = ”O"
              Check next cell
      End
 

У меня не было бы проблем с этим в VB, я только начал использовать Google scripts около 3 месяцев назад. Кто-нибудь порекомендует хорошую книгу, которая поможет мне изучить этот материал Google Script?

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

1. Добро пожаловать в Stackoverflow, Дэвид! Указатель на запоминание: было бы более полезно, если бы ваши сообщения были точными. Такие вопросы, как рекомендации по книгам и учебникам, могут быть здесь неуместны, поскольку мы стремимся исключительно оказать помощь в написании кода. Возможно, они лучше подходят для форума. Я говорю это, потому что вы можете рисковать закрытием вопроса, если он помечен как не относящийся к теме или неясный. Имейте это в виду.

Ответ №1:

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

Вы можете использовать, например, цикл for, условный оператор if и == оператор сравнения

Образец, который будет объединен с остальной частью вашей функции:

 var ss = SpreadsheetApp.getActiveSpreadsheet();
var sourceSheet  = ss.getSheetByName("Students AM");
var referenceSheet = ss.getSheetByName("Menu");
var referenceValue = referenceSheet.getRange("D14").getValue();
var sourceRange = "B7:N77";
var values = sourceSheet.getRange(sourceRange).getValues();
for (var i = 0; i < values.length; i  ){
// values[i][12] correspond to the values in column N of each row
  if(values[i][12] == referenceValue){
    sourceSheet.getRange((sourceRange   i), 7).setValue("O");
  }
}
 

Для дальнейшего чтения: