Итак, я пытался создать функцию AADD (диапазон, диапазон).Это не завершено, так что не тряхните меня об этом.На данный момент меня беспокоит то, что редактор сценариев в значимом коде и то, что будут запускать Google Sheets, выглядят иначе.
Прежде всего, вот тестер:
function test_AADD() {
var sheet = SpreadsheetApp.getActiveSheet();
var range1 = sheet.getRange("B2:E2");
var range2 = sheet.getRange("B3:D3");
var result = AADD(range1, range2);
}
диапазоны намеренно не совпадают по длине, потому что я пытаюсь выяснить, как отсылать обратно стандартные сообщения об ошибках типа "#ERROR!"(некоторая помощь там тоже поможет.)
Вот публичная функция AADD.Надеюсь, однажды я узнаю, как сделать функции приватными (еще одна вещь, с которой мне нужна помощь.)
/**
* Adds two arrays
*
* @param {Range} range1 The first parameter
* @param {Range} range2 The second paramter
* @return {Range}
* @customfunction
*/
function AADD(range1, range2) {
return fnAADDrr(range1, range2);
}
(в конечном счете) приватная функция, которая реализует код AADD (поверьте мне, смысл в безумии) - это
function fnAADDrr(range1, range2) {
var r1len = range1.getNumRows() * range1.getNumColumns();
var r2len = range2.getNumRows() * range2.getNumColumns();
if (r1len !== r2len) {
return new Error("#ERROR!");
}
}
На этом этапе функция идет так далеко, потому что я просто пытаюсь понять, как проверить диапазон, в котором не так много элементов, как у другого.
Итак, теперь мы переходим к основной проблеме: когда у меня есть скрипт, редактор скриптов не жалуется на вызовы методов переданных переменных Range1 и Range2.И когда я запускаю функцию test_AADD в редакторе сценариев, я получаю наиболее разумный ответ (за исключением того, что «новая ошибка» на самом деле не возвращается - что-то еще, с чем мне нужна помощь.)
ИтакЯ возвращаюсь к своему файлу Google Sheets.В ячейке я набираю
=AADD(B2:D2,B3:D3)
Теперь это даже не будет запускать бит "новая ошибка", потому что диапазоны имеют одинаковый размер.Тем не менее, я получаю "#ERROR!"который, если навести на него курсор мыши, я получу
TypeError: Cannot find function getNumRows in object 1,2,3 (line 73)
, где 1,2,3 - это то, что находится в B2: D2, а строка 73 - это местоположение в файле сценария.
Так почему же редактор сценариев и Google Sheets не могут договориться о том, что разрешено?