Как извлечь номер столбца диапазона именованного диапазона Google с помощью скрипта Google?
Мне нужно ввести данные в ячейку листа Google, которая находится в именованном диапазоне. Чтобы сделать это с помощью Google Script, мне нужно знать номер столбца именованного диапазона. Я написал скрипт, который выполняет работу, но только потому, что я знаю, что в именованном диапазоне есть только один столбец, поэтому я использую команду getLastColumn, чтобы получить номер столбца. Я знаю, что должна быть команда getColumnNumber или что-то в этом роде, но из документации Google и этого сайта я просто не могу ее найти. Любая помощь? Связанный скрипт ниже:
function addSong() {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getActiveSheet();
var lastRow = sheet.getLastRow()
sheet.appendRow([lastRow+1]);
SpreadsheetApp.flush();
var range = sheet.getRange(sheet.getLastRow(), 1);
var songTitle = Browser.inputBox('New Song', 'Enter the song title', Browser.Buttons.OK_CANCEL);
var namedRange = sheet.getRange("Title");
var col = namedRange.getLastColumn();
sheet.getRange([lastRow+1], col).setValue(songTitle)
SpreadsheetApp.setActiveRange(range);
}
Эй, Купер: Я попробовал твой подход, и он прекрасно работает, за исключением того, что теряет часть того, что я делал со своим сценарием; в частности, он не увеличивает номер записи песни. Итак, я добавил ключевой бит из того, что вы сделали, чтобы правильно вставить столбец именованного диапазона в мой код, и все это работает. Пересмотренный код:
function addSong() {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getActiveSheet();
var lastRow = sheet.getLastRow()
sheet.appendRow([lastRow+1]);
SpreadsheetApp.flush();
var range = sheet.getRange(sheet.getLastRow(), 1);
var songTitle = Browser.inputBox('New Song', 'Enter the song title', Browser.Buttons.OK_CANCEL);
var namedRange = sheet.getRange("Title");
var range=sheet.getRange(sheet.getLastRow(), namedRange.getColumn())
range.setValue(songTitle);
SpreadsheetApp.setActiveRange(range);
}
1 ответ
Попробуй это:
function addSong() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var resp=SpreadsheetApp.getUi().prompt('New Song', 'Enter the sone title', SpreadsheetApp.getUi().ButtonSet.OK_CANCEL);
var songTitle=resp.getResponseText();
var namedRange = ss.getRangeByName('Title');
var range=sh.getRange(sh.getLastRow()+1, namedRange.getColumn())
range.setValue(songTitle);
SpreadsheetApp.setActiveRange(range);
}