首页 > 解决方案 > 宏运行后不点击就无法编辑字段

问题描述

我有一个 Google 表格工作簿,其中有一些定义为脚本的宏它们非常简单(添加行和格式)。脚本的最后一行激活了一个特定的单元格。我已将其中一个脚本链接到一个按钮。当我单击按钮时,宏按预期运行,并且单元格按预期突出显示,但是如果不双击单元格,我将无法编辑单元格。即使按“输入”键也不允许在单元格中输入文本。

我查看了开发人员参考资料,并尝试搜索互联网,但似乎没有任何搜索词组合可以准确描述此问题。

这是我正在使用的功能,我想在宏完成后编辑单元格 B3:

function Insert() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('3:3').activate();
  spreadsheet.getActiveSheet().insertRowsBefore(spreadsheet.getActiveRange().getRow(), 1);
  spreadsheet.getActiveRange().offset(0, 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
  spreadsheet.getRange('F3').activate();
  spreadsheet.getCurrentCell().setFormula('=IF(or(ISNUMBER(D3),ISNUMBER(E3)),sum(F4+D3-E3),"")');
  spreadsheet.getActiveRangeList().setBorder(null, null, null, true, null, null, '#000000', SpreadsheetApp.BorderStyle.SOLID);
  spreadsheet.getRange('B3').activate();
  spreadsheet.getActiveRangeList().setBorder(null, true, null, null, null, null, '#000000', SpreadsheetApp.BorderStyle.SOLID);
  spreadsheet.getRange('B3:F4').activate();
  spreadsheet.getRange('B3').activate();
};

我希望能够在宏运行完成后立即开始在单元格中输入(或者如果需要,按“输入”键,然后开始输入)

标签: google-apps-scriptgoogle-sheetsgoogle-apps

解决方案


您的方法是将光标移动到指定单元格的正确方法之一。要在该单元格上写字,您可以按您所说的进行双击,但有更快的方法:

  • 粘贴文本:只需按CTRL + V
  • 公式栏:单击一次并写入数据。

为澄清起见,公式栏在屏幕上方标有 ƒ 符号。如果它是隐藏的,你可以让它出现在View > Formula bar. 我们希望这对您有用。请不要犹豫,向我们提供更多信息以获得进一步的帮助。

更新

单击按钮后,您无法直接写入单元格,因为单击按钮后按钮已被选中,而忽略了函数本身的结果。

我在研究自定义菜单时想到了这个功能的解决方法。可以使用您的功能创建新菜单;并且该菜单在被激活后会将光标留在单元格中,以便按照您最初的要求进行写入。

要获得该菜单,您需要在代码中添加以下函数:

function onOpen() {
  var userInterface = SpreadsheetApp.getUi();
  userInterface.createMenu("cawwot's menu").addItem('Insert', 'Insert').addToUi();
}

重新加载电子表格后,您将能够使用新菜单。


推荐阅读