Javascript 脚本移动到最后一行,但用户需要在输入数据之前单击
我当前的环境:Chrome、Win10、Thinkpad、FF、Win10、PC 从工作表上的按钮调用函数时,下面的脚本起作用,允许在包含数据的最后一行之后添加新行 但是,当我在键盘上键入任何内容时,输入的数据不会输入到单元格中 需要单击单元格才能接受键盘输入。 但是,当从脚本编辑器运行同一功能时,用户不必单击单元格中的键即可接受键盘输入。这是我需要的行动 我在一个新的电子表格中尝试了同样的方法,并使用了不同的浏览器和硬件,获得了相同的结果 这是应用程序脚本中的错误吗?有解决办法吗 以下是脚本:Javascript 脚本移动到最后一行,但用户需要在输入数据之前单击,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我当前的环境:Chrome、Win10、Thinkpad、FF、Win10、PC 从工作表上的按钮调用函数时,下面的脚本起作用,允许在包含数据的最后一行之后添加新行 但是,当我在键盘上键入任何内容时,输入的数据不会输入到单元格中 需要单击单元格才能接受键盘输入。 但是,当从脚本编辑器运行同一功能时,用户不必单击单元格中的键即可接受键盘输入。这是我需要的行动 我在一个新的电子表格中尝试了同样的方法,并使用了不同的浏览器和硬件,获得了相同的结果 这是应用程序脚本中的错误吗?有解决办法吗 以下是脚本:
function addVenue() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Venues");
var column = ss.getRange('A:A');
var values = column.getValues();
//loop down until Venue name cell blank
var ct = 0;
while ( values[ct] && values[ct][0] != "" ) {
ct++;
}
ct++;
ss.getRange("A"+ct).activate();
}
更新:
我认为您当前的代码不起作用,因为它不会在最后一行内容后添加新行。这就是为什么我发布此解决方案来回答问题的这一部分,因为它也比您问题中的解决方案提供了实质性的改进。以下代码已经在谷歌chrome(PC)上测试和使用,并从脚本编辑器执行
该单元格已激活,用户可以直接在该单元格中输入数据(无论大小),无需单击该单元格:
解决方案:
- 如果要在最后一行之后添加内容为a列的行,请执行以下操作:
function addVenue() { var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Venues"); var filledRows = ss.getRange("A1:A").getDisplayValues().filter(String).length; ss.insertRowsAfter(filledRows, 1); ss.getRange(filledRows+1,1).activate() }
- 此方法仅在列A不包含空单元格时有效 在内容的第一行和最后一行之间;正如您的解决方案所示 同样的假设
activate()
上的选择上有一个蓝色边框,但没有闪烁的光标”?您还说您已签入您的电脑。以包括该环境的详细信息(电脑浏览器、操作系统)。也请登录Firefox。评论不用于扩展讨论;这段对话已经结束。