Google apps script 在google脚本中动态生成范围

Google apps script 在google脚本中动态生成范围,google-apps-script,Google Apps Script,我完全不熟悉谷歌应用程序脚本,正在努力动态生成一个范围 我在工具栏中创建了一个按钮,用于调用函数。我想要函数做的是基于当前单元格设置活动范围,但仅使用行。因此,如果用户在第6行的任何列上,它仍然只会将活动范围设置为(“A6:G6”) 到目前为止,我所拥有的只是 myFunction() { var ss = SpreadsheetApp; var onRow = ss.getActiveRange().getRow(); xl.setActiveRange(onRow, 1, 1,

我完全不熟悉谷歌应用程序脚本,正在努力动态生成一个范围

我在工具栏中创建了一个按钮,用于调用函数。我想要函数做的是基于当前单元格设置活动范围,但仅使用行。因此,如果用户在第6行的任何列上,它仍然只会将活动范围设置为(“A6:G6”)

到目前为止,我所拥有的只是

myFunction() {
  var ss = SpreadsheetApp;
  var onRow = ss.getActiveRange().getRow();
  xl.setActiveRange(onRow, 1, 1, 7);
}

我知道最后一行不是它是如何工作的,但我不明白这是什么。我想将onRow作为变量传入,并固定以下三个数字,分别表示列数、行数和列数。

在电子表格中使用Google应用程序脚本时,需要小心不要混淆电子表格应用程序、电子表格、工作表和范围对象及其方法。在您的示例中,您误用了SpreadsheetApp对象

下面是一些示例代码,它实现了您想要的功能,由一个简单的菜单项控制。请注意,严格来说,不必在
setRangeByRow()中创建所有这些变量;为清晰起见,此处仅进行此操作:

/**
 * Runs when the document is opened.
 * Sets up menu controls.
 */
function onOpen() {
  SpreadsheetApp.getUi().createMenu('Test Range Set')
    .addItem('Select Range', 'setRangeByRow')
    .addToUi();
}

/**
 *  Acquires the row of the current active cell
 *  and sets the active range to the first 7
 *  columns of that row.
 */
function setRangeByRow() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var onRow = sheet.getActiveRange().getRow();
  //Logger.log("ACTIVE ROW: "+onRow);
  var range = sheet.getRange(onRow, 1, 1, 7);
  sheet.setActiveRange(range);
}

我试着改玩床单课,但没能完全理解。这太完美了,感谢你正式帮助我克服了谷歌脚本的第一个障碍:)