让我们从所有这些都将在同一本书中开始。我有 Sheet1 和 Sheet2。
Sheet1 包含多行。这些行在 D、E、F 列中具有复选框。
我正在尝试编写一个脚本,当选中复选框 F 时,它将把整行复制到 Sheet2 作为运行日志。我在一些我正在“玩弄”的脚本中使用了appendRow,但总是遇到麻烦。
我还看到了简单的公式,例如:(这不适用于我需要做的事情) [Copy over the row in another sheet when checkbox checked in Google Sheets
不记录。如果 Sheet1 中的行永远不会被删除,那就太好了。然而,这些行可能会不时被删除。因此,当选中 Sheet1 上的 F 时,我确实需要它来复制/记录到 Sheet2。
我已经在 Google 上搜索了好几天,但没有发现任何由特定单元格(或列中的单元格)触发的 Google 表格日志。
附注 我是“愚蠢的黑客”,用一些代码试图获得 onEdit 函数来检查 F。我对学习非常感兴趣:)
最佳答案
onEdit
是正确的选择
我建议您熟悉Google Apps Script允许您检测onEdit任一复选框已被选中(如果是 - 是哪一个)。 if
语句将帮助您copy数据,以防复选框位于感兴趣的列中。
在花费一些时间研究 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));
}
}
关于javascript - 选中复选框时,Google Sheets 将行记录到另一张工作表(同一本书),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59630780/