В идеале ничто не может быть жестко запрограммировано за пределами самой таблицы по URL. В духе заставить вещи работать.
Я хотел бы взять выбор графического интерфейса в листах Google, получить его диапазон, передать диапазон функции, чтобы "делать вещи"
Вот чтоПока у меня есть ...
Кнопка графического интерфейса для вызова моего скрипта.
function onOpen() {
var ui = SpreadsheetApp.getUi();
// Or DocumentApp or FormApp.
ui.createMenu('Run Script Menu')
.addItem('Run Test function', 'run')
.addToUi();
}
Функция, предназначенная для захвата диапазона и передачи диапазона другой функции.
Вот «рабочая» жестко закодированная версия функции , например, функция rowData возвращает ожидаемый результат.
function run(){
var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/myfullurl");
var sheet = ss.getSheetByName("some sheet name")
var range = sheet.getRange("A3:M3");
var ar = sheet.setActiveRange(range);
var rowData = getRowsData(sheet,ar,1);
}
Вот мои попытки не hardзакодируйте только диапазон, который я пытаюсь передать функции.
function run(){
var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/myfullurl");
var sheet = ss.getSheetByName("some sheet name")
var range = sheet.getSelection().getActiveRange();
var ar = sheet.setActiveRange(range);
var rowData = getRowsData(sheet,ar,1);
}
Затем я получаю сообщение об ошибке
Specified range must be part of the sheet
Не уверен, полезно ли это, но getRowsData - эта функция https://gist.github.com/mhawksey/51a1501493787bc5b7f1