我需要在Google表格单元格中输入数据,该单元格位于命名范围内。要使用Google脚本执行此操作,我需要知道命名范围的列号。我编写了一个完成工作的脚本,但只是因为我知道命名范围只有一列,所以我使用getLastColumn命令来获取列号。我知道必须有一个命令“getColumnNumber”或类似的东西,但从谷歌文档和这个网站,我根本找不到它。有帮助吗?下面的绑定脚本:
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);
}
嘿Cooper:我尝试过你的方法并且效果很好,除了它丢失了我用脚本做的一些事情;具体来说,它不会增加歌曲记录编号。所以,我添加了你所做的关键位,以正确地将命名范围列放入我的代码中,这一切都有效。修改后的代码是:
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);
}
试试这个:
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);
}