javascript - 选中复选框时,Google 表格将行记录到另一张表格(同一本书)
问题描述
让我们从所有这些都在同一本书中开始。我有 Sheet1 和 Sheet2。
Sheet1 包含几行。这些行在 D、E、F 列中有复选框。
我正在尝试编写一个脚本,当检查复选框F时,它将整个行将整个行复制为运行日志。我在一些我“玩弄”的脚本中使用了 appendRow,但一直遇到麻烦。
我还看到了简单的公式,例如:(这不适用于我需要做的事情)[在 Google 表格中选中复选框时复制另一张表格中的行
不记录。如果 Sheet1 中的行永远不会被删除,那就太好了。但是,这些行可能会不时被删除。因此,当检查 Sheet1 上的 F 时,我真的需要它复制/记录到 Sheet2。
我已经 Google 搜索了几天,但没有找到由特定单元格(或列中的单元格)触发的任何 Google 表格日志。
PS我是“愚蠢的黑客”,一些代码试图获得一个onEdit函数来检查F。我对学习很感兴趣:)
解决方案
onEdit
是要走的路
我建议您熟悉Google Apps 脚本,该脚本允许您检测onEdit是否选中了一个复选框(如果是 - 是哪一个)。如果复选框位于感兴趣的列中,则if
语句将帮助您复制数据。
在花费一些时间研究 Apps 脚本文档后,您可以根据需要调整以下示例脚本:
function onEdit(){
var ss=SpreadsheetApp.getActive();
var sheet1=ss.getSheetByName("Sheet1");
var sheet2=ss.getSheetByName("Sheet2");
var cell=SpreadsheetApp.getActiveRange();
if(SpreadsheetApp.getActiveSheet().getName()=="Sheet1" && cell.getColumn()==6 && cell.getValue() == true){
Logger.log('bla');
var row=cell.getRow();
var range=sheet1.getRange(row,1,1,sheet1.getLastColumn());
range.copyTo(sheet2.getRange((sheet2.getLastRow()+1),1));
}
}
推荐阅读
- sql - Oracle 替换一些重复的字符(非数字)
- spring-webflux - Spring webflux - 验证查询参数和路径参数
- css - 如何最好地使用 CSS 来制作包含高嵌套元素的页面以限制视口的高度?
- html - portlet 上方的下拉菜单
- bulma - 如何使用 bulma 水平居中 bulma-calendar
- azure-devops - 在 DevOps Pipeline 单元测试中添加和使用 MDF
- input - Verilog 中的索引超出范围错误,尽管寄存器声明正确
- sql - SQL 过滤以显示仅在一列中具有值的行出现多次
- flutter - Apple 使用 Flutter 和 Auth0 登录
- python-3.x - Python Marshmallow AttributeError:“list”对象没有属性“get”