如何通过 Google 脚本提取 google sheet 命名范围的列号?

How do I extract a google sheet named range's column number via Google Script?

我需要在 Google sheet 单元格中输入数据,该单元格位于命名范围内。要使用 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);
    }

试试这个:

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);
}