#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 in ‘Students 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");
}
}
Для дальнейшего чтения: