我需要在Google表格单元格中输入数据,该单元格在指定的范围内。要使用Google脚本执行此操作,我需要知道命名范围的列号。我编写了一个脚本来完成工作,但这只是因为我知道命名范围只有一列,所以我使用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);
}
答案 0 :(得分:0)
尝试一下:
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);
}