如何通过Google脚本提取名为范围列号的Google工作表?

时间:2019-02-16 16:41:01

标签: google-apps-script named-ranges

我需要在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);
    }

1 个答案:

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