如何通过Google Script提取名为range的列号的Google表格?

问题描述 投票:0回答:1

我需要在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);
    }
google-apps-script named-ranges
1个回答
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);
}  
© www.soinside.com 2019 - 2024. All rights reserved.