尝试使 Google 电子表格自动滚动到填充行的底部。尝试了代码但出现错误

Trying to make a Google spreadsheet auto scroll to bottom filled in row. Tried a code but getting an error

我从 this question 中获取了以下代码。我试图让我的 400+ 行 Google sheet 在打开时自动滚动到 sheet 的底部而不是第一行。我收到第 2 行代码的错误。

TypeError: 无法从未定义中读取 属性 "source"。 (第 2 行,文件 "Code")

我有一种感觉,这是因为我的跨页上有多个标签sheet,但我对代码的了解不够深,无法修复它。我希望它只适用于第一个选项卡。

    function onOpen(e) {
      var spreadsheet = e.source;
      var sheet = spreadsheet.getActiveSheet();
      var lastRow = spreadsheet.getLastRow();
    /*  if (sheet.getMaxRows() == lastRow) {
        sheet.appendRow([""]);
      }
      lastRow = lastRow + 1;
      */
      var range = sheet.getRange("A" + lastRow + ":A" + lastRow);
      sheet.setActiveRange(range);
    }

Vidar S. Ramdal 在 referred topic 中给出的说明以及@OlegValter 试图在评论中解释的说明 非常 重要。一定要全部完成。

  1. 转到工具 → 脚本编辑器并粘贴以下内容:

function onOpen(){
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheetname = ss.getSheets()[0].getName();
 // Logger.log("DEBUG: sheetname = "+sheetname)
 var sheet = ss.getSheetByName(sheetname);
 var lastRow = sheet.getLastRow();
 var range = sheet.getRange(lastRow,1);
 sheet.setActiveRange(range);
}

  1. 删除任何调用 onOpen()、onOpen(e) 或类似代码的现有代码。

  2. 点击保存按钮,然后关闭脚本编辑器,传播sheet.

  3. 现在,再次打开您的价差sheet。给它几秒钟,您应该会看到光标落到第一个 sheet 内容最后一行的 A 列。无论您上次使用价差 sheet.

  4. 时 sheet/row/column 处于活动状态,都会发生这种情况

注:

正如@OlegValter 所解释的那样,

onOpen() 不是可以从脚本编辑器中 运行 的函数。如果您点击"run" 来执行该功能,它将不起作用。它只会在点差sheet打开时执行。


说明

  • ss.getSheets()[0].getName();
    getSheets()(Doc ref) gets all the sheets in the spreadsheet, and getSheets()[0] limits this to just the first sheet in the spreadsheet. getName()returnssheet的名字。结合起来,这一行returns第一个sheet的名字在Spreadsheet.
  • ss.getSheetByName(sheetname);
    getSheetByName(name)(Doc ref) returns 具有给定名称的 sheet。
  • sheet.getLastRow() -
    returns 包含内容的最后一行的位置 (Doc ref)
  • sheet.getRange(lastRow,1);
    getRange(row, column) returns 给定坐标左上角单元格的范围。我们用lastRow作为行的值,1表示A列(Doc ref)
  • setActiveRange(range) 将指定范围设置为活动 sheet 中的活动范围,并将范围中左上角的单元格设置为当前单元格 (Doc ref)。换句话说,屏幕移动到活动单元格。