Google apps script 通过图形启动脚本激活范围时,无需在键入之前单击

Google apps script 通过图形启动脚本激活范围时,无需在键入之前单击,google-apps-script,google-sheets,selection,Google Apps Script,Google Sheets,Selection,我正在为谷歌表单编写一个简单的脚本。我有一个标记为“New Entry”的按钮(该按钮实际上是一个带有我的脚本的图形)。当用户单击按钮时,脚本将在指定位置插入一个空行,并激活第一列,以便用户可以开始键入 除了脚本完成后,键盘在用户手动单击工作表后才能工作外,其他一切都很好。正确的单元格被明显激活,但我怀疑焦点仍然(秘密地)在图纸上。这一理论得到了这样一个事实的支持:如果用户按escape键,他就可以根据需要开始在活动单元格中键入内容 有没有办法自动完成这最后一步,这样用户在开始打字之前就不需要按

我正在为谷歌表单编写一个简单的脚本。我有一个标记为“New Entry”的按钮(该按钮实际上是一个带有我的脚本的图形)。当用户单击按钮时,脚本将在指定位置插入一个空行,并激活第一列,以便用户可以开始键入

除了脚本完成后,键盘在用户手动单击工作表后才能工作外,其他一切都很好。正确的单元格被明显激活,但我怀疑焦点仍然(秘密地)在图纸上。这一理论得到了这样一个事实的支持:如果用户按escape键,他就可以根据需要开始在活动单元格中键入内容

有没有办法自动完成这最后一步,这样用户在开始打字之前就不需要按ESC键或点击工作表?

以下是我正在使用的相关代码行:

this_sheet.getRange(new_row_num, start_col + 1).activate();   // activate the appropriate cell for convenient data entry

我已经尝试了一些其他函数与和/或结合使用,而不是上面显示的代码行,但总是得到相同的结果。这些其他函数包括
Sheet.activate()
Spreadsheet.setActiveSelection(range)
如果这些函数没有按预期的方式工作,那么获得焦点的解决方法是使用

this_sheet.getRange(new_row_num, start_col + 1).setValue("");//for blank cell

如果它不是空白单元格,但有一些现有值,那么可以先使用getValue(),然后使用setValue(),以保持相同的值。

欢迎使用堆栈溢出!你可能想退房。包括您现有的代码将是一个良好的开端。@GaryStorey感谢您的欢迎!根据how-to链接,我添加了一些代码和一些额外的细节。对于这个有点笨拙的问题,我很抱歉——我希望这能有所帮助!我想我也有一个类似的问题,无法正常工作:谢谢你的回复,很抱歉耽搁了——我现在才看到这个!不幸的是,这种变通方法对我不起作用。焦点似乎仍然在用户单击的按钮(图形)上。我仍然需要按escape键才能在激活的单元格中实际键入任何内容。@Andrew我几天前刚刚完成了一个脚本,在该脚本中,即使使用
range.activate()
method,它也可以正常工作。所以,看起来要么您需要共享完整的代码,要么您需要在之后执行其他语句,从而使焦点返回到绘图。