Mar*_*man 1 google-sheets autoscroll google-apps-script
我有从这个问题中获取的以下代码。我试图让我的 400 多行 Google 工作表在打开时自动滚动到工作表的底部,而不是第一行。我收到第 2 行代码的错误。
类型错误:无法从未定义中读取属性“源”。(第 2 行,文件“代码”)
我有一种感觉,因为我的电子表格上有多个选项卡,但我不太了解代码来修复它。我希望它只在第一个选项卡上工作。
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);
}
Run Code Online (Sandbox Code Playgroud)
Vidar S. Ramdal在提到的主题中给出的说明以及@OlegValter 试图在评论中解释的说明非常重要。一定要把它们都做完。
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);
}
Run Code Online (Sandbox Code Playgroud)
删除任何现有的调用 onOpen()、onOpen(e) 或类似代码的代码。
单击“保存”按钮,然后关闭脚本编辑器和电子表格。
现在,再次打开您的电子表格。给它几秒钟,您应该会看到光标下降到第一张纸上最后一行内容的 A 列。无论您上次使用电子表格时哪个工作表/行/列处于活动状态,都会发生这种情况。
笔记:
正如@OlegValter 所解释的那样,onOpen() 不是一个可以从脚本编辑器运行的函数。如果您单击“运行”来执行该功能,它将不起作用。它只会在电子表格打开时执行。
解释
ss.getSheets()[0].getName();
getSheets()
( Doc ref ) 获取电子表格中的所有工作表,并将其getSheets()[0]
限制为电子表格中的第一张工作表。getName()返回工作表的名称。合并后,该行返回电子表格中第一个工作表的名称。ss.getSheetByName(sheetname);
getSheetByName(name)
( Doc ref ) 返回具有给定名称的工作表。sheet.getLastRow()
-sheet.getRange(lastRow,1);
getRange(row, column)
返回给定坐标处左上角单元格的范围。我们用lastRow
作为行的值,用 1 来表示 A 列(Doc ref)setActiveRange(range)
将指定范围设置为活动工作表中的活动范围,将范围内左上角的单元格设置为当前单元格 ( Doc ref )。换句话说,屏幕移动到活动单元格。 归档时间: |
|
查看次数: |
5028 次 |
最近记录: |