尝试编写自定义复制/粘贴Google表格脚本

时间:2015-12-09 17:23:52

标签: javascript google-apps-script google-sheets

我正在尝试创建一个自定义Google表格脚本,当用户选择了一个特定的单元格并点击菜单中的自定义功能按钮时,它会复制该单元格中的数据并使用&将其重新粘贴到同一个单元格中#34;仅限值#34;粘贴选项。理想情况下,对于所选单元格正下方的下一个8个单元格也会这样做。

这甚至可能吗?

1 个答案:

答案 0 :(得分:0)

您的第一步是创建一个菜单以在电子表格中运行您的功能。您可以在此处找到文档和示例代码:https://developers.google.com/apps-script/guides/menus?hl=en

接下来,您可以使用几种方法来完成此任务(将公式替换为其结果或仅使用"值")。

您需要getActiveRange方法,getValues方法和setValues方法。由于getValues方法不会复制公式,因此您只需将结果设置回活动范围即可。这里有关于这些方法的文档:SpreadsheetApp

您可以在包含下面8个单元格的范围内进行硬编码,但在此功能中,它只使用突出显示的单元格区域,这些单元格更直观(我认为)且更通用。

您的代码可能如下所示:

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  // Or DocumentApp or FormApp.
  ui.createMenu('Custom Menu')
      .addItem('Values Only', 'valuesOnlyFunction')
      .addToUi();
}

function valuesOnlyFunction() {
  var activeRange = SpreadsheetApp.getActiveRange();
  var activeRangeArr = activeRange.getValues();  
  activeRange.setValues(activeRangeArr);
}