Google apps script 基于复选框值或布尔值将范围复制到其他图纸

Google apps script 基于复选框值或布尔值将范围复制到其他图纸,google-apps-script,checkbox,return-value,spreadsheet,copy-paste,Google Apps Script,Checkbox,Return Value,Spreadsheet,Copy Paste,我需要一些代码方面的帮助。在我的情况下,我有12张基于月历的工作表,每当下个月出现时,我都会尝试将某个月的数据复制到另一张“大数据”工作表。我使用了一个复选框来触发功能(复制每月数据),但问题是复选框没有很好地工作。每次我把数据放进去,它都会立即复制到大数据上,这真是让人困惑。我把我的复选框放在单元格E4上,我打算复制的数据在C:R到最后一行的范围内 函数onEdit1(事件){ var ss=SpreadsheetApp.getActiveSpreadsheet(); var s=event

我需要一些代码方面的帮助。在我的情况下,我有12张基于月历的工作表,每当下个月出现时,我都会尝试将某个月的数据复制到另一张“大数据”工作表。我使用了一个复选框来触发功能(复制每月数据),但问题是复选框没有很好地工作。每次我把数据放进去,它都会立即复制到大数据上,这真是让人困惑。我把我的复选框放在单元格E4上,我打算复制的数据在C:R到最后一行的范围内

函数onEdit1(事件){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var s=event.source.getActiveSheet();
var r=event.source.getActiveRange();
var sheet=ss.getSheetByName(“一月”);
如果(s.getName()==“Januari”&&r.getColumn()==5&&r.getRow()==4&&r.getValue()==true){
var range=sheet.getRange(13,3,sheet.getLastRow()-1,18);
var targetSheet=ss.getSheetByName(“每5年一次的REKAP JADWAL BULANAN”);
var target=targetSheet.getRange(targetSheet.getLastRow()+1,3);
sheet.getRange(13,3,sheet.getLastRow()-1,18).copyTo(目标);
sheet.getRange(13,3,sheet.getLastRow()-1,18).clear({contentsOnly:true});
}

}
我想错误在这行:

if(s.getName() == "Januari" && r.getColumn() == 5 && r.getRow() == 4 && r.getValue() == true); {

你不需要
before
{

编辑完成后,
OneEdit
函数将直接运行-因此当您选中复选框时。如果这不是您想要的,您将需要实现基于时间的触发器。但是,您能否先详细解释一下“下个月出现时”是什么意思?您希望什么时候复制数据?我相信
函数onEdit1(事件){
应该是
函数onEdit(事件){
没有
1
onEdit
@ziganotschka之后,我有12张基于月份名称的工作表。我想使用基于时间的触发器触发复制范围到不同的工作表。例如:如果这个月是二月,那么我想要上一张工作表,即“一月”将副本复制到不同的工作表automatically@YuriKhristich是的,你是对的,但我打算在
onEdit
之后添加数字,因为我有多个
onEdit
功能谢谢,这真的很有帮助!