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

标签 javascript google-apps-script google-sheets

我正在尝试创建一个自定义 Google Sheets 脚本,当用户选择特定单元格并点击菜单中的自定义功能按钮时,它会复制该单元格中的数据,并使用“仅值”粘贴选项。理想情况下,它也会对所选单元格正下方的接下来 8 个单元格执行相同的操作。

这可能吗?

最佳答案

您的第一步是创建一个菜单来运行电子表格中的函数。您可以在此处找到文档和示例代码: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);
}

关于javascript - 尝试编写自定义复制/粘贴 Google 表格脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34185104/

相关文章:

javascript - 如何根据下拉值更新div文本?

google-apps-script - 谷歌脚本超时

google-apps-script - 在字符串中查找文本,不区分大小写

HTML href 链接不可点击

javascript - 将行移动到新工作表中不同列的脚本

google-apps-script - 在 google 应用程序脚本 onEdit() 中设置电子表格触发器的通知

google-apps-script - 如何使用 Javascript 删除工作表中最近 3 天的数据?

javascript - 如何获取javascript promise 的返回值?

javascript - 如何在 PrimeFaces 中通过 JavaScript 在托管 bean 中设置参数

javascript - 如何将值数组传递给旭日图 dc.js?