Я пытаюсь написать сценарий, который будет копировать строки из одного листа в другие листы на основе ответов на определенные столбцы. Однако у меня возникают проблемы с проверкой, содержит ли строка var другую строку var.google sheets string.indexOf ('string') неверно возвращается
function checkInterest(cell)
{
// assumes source data in sheet named Needed
// target sheet of move to named Acquired
// test column with yes/no is col 4 or D
ss = SpreadsheetApp.getActive()
s = ss.getSheetByName('Form Responses 1');
r = s.getActiveRange();
i = s.getMaxRows();
v = lastValue('P');
addByInterest('Lighting','Lighting');
//addByInterest('Sound','Sound');
addHM();
}
function lastValue(column) {
var lastRow = SpreadsheetApp.getActiveSheet().getMaxRows();
var values = SpreadsheetApp.getActiveSheet().getRange(column + "1:" +
column + lastRow).getValues();
for (; values[lastRow - 1] == "" && lastRow > 0; lastRow--) {}
return values[lastRow - 1];
}
function addByInterest(interest,sheetName)
{
Logger.log(v);
Logger.log('Lighting, Sound'.indexOf('Lighting'));
Logger.log(v.indexOf(interest.valueOf()));
if(s.getName() == 'Form Responses 1' &&
(v.indexOf(interest.valueOf()) >= 0)){
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName(sheetName);
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).copyTo(target);
}
}
function addHM()
{
Logger.log('RAN');
if(s.getName() == 'Form Responses 1' &&
(v.indexOf('Hair') >= 0 || v.indexOf('Makeup') >= 0)){
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName('Hair & Makeup');
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).copyTo(target);
}
}
Logger печатает
[15-10-01 12:14:27:346 EDT] [Lighting, Sound]
[15-10-01 12:14:27:346 EDT] Lighting
[15-10-01 12:14:27:347 EDT] 0.0
[15-10-01 12:14:27:348 EDT] -1.0 //Should return greater than or equal to 0
[15-10-01 12:14:27:349 EDT] RAN
Я попытался с и без .valueOf() для строк. Несколько новый для JS и совершенно новый для Google Scripts, поэтому это может быть просто исправление, но я не уверен. Любая помощь очень ценится.
Это исправило проблему. Спасибо! – khumps
@ kumps, добро пожаловать. Рад, что он исправил проблему. – cssimsek