вот мой код, оператор if никогда не будет правдой, но я не знаю, что с ним не так. Я также попытался заменить «(„A“+ currentRow)» с «(„A: A“)», добавляя количество подходящих объектов
function addAllValues() {
var ss = SpreadsheetApp.getActiveSpreadsheet(),
sheet = ss.getSheetByName("Form Responses 1"),
type = sheet.getRange("B2:B").getValues(),
length = sheet.getRange("C2:C").getValues(),
model = sheet.getRange("D2:D").getValues(),
make = sheet.getRange("E2:E").getValues(),
specs = sheet.getRange("F2:F").getValues(),
add = sheet.getRange("G2:G").getValues(),
quantity = sheet.getRange("H2:H").getValues(),
currentRow = SpreadsheetApp.getActiveSheet().getActiveSelection().getRowIndex(),
i=0,
value=0;
do{
if(type == ("A" + currentRow) && length == ("B" + currentRow) && model == ("C" + currentRow) && make == ("D" + currentRow) && specs == ("E" + currentRow))
{
if(add == "add"){ value = value + quantity}else{ value = value - quantity}
}
i++;
}while(type[i] != "")
return value;
}
Целью этой функции является смотреть через один лист и сложить все совпадающие элементы для обновления количества другого листа. Любая помощь будет оценена по достоинству. Спасибо
большое спасибо это было очень полезно, я имею еще одну проблему, хотя это: значение = значение + количество [I] выходит, как добавить строку, например 01114, когда оно должно быть 0 + 1 + 1 + 14 = 16 –
Это еще один пример такого поведения «принуждения» в JavaScript. Если ваш первый операнд, 'значение', содержал строку (даже если эта строка представляла число), и вы добавляете к ней номер, второй операнд будет принудительно использоваться как строка, а затем строки будут объединены. Вы можете принудить первый операнд быть числом, добавив его к (нулевому) нулевому значению: «value = + value + quantity [i]' – Mogsdad
, который не исправил проблему, есть другой способ заставить ее быть integer –