如何解决如何使用一个选项卡中的复选框复制行并将其添加到该选项卡的底部和两个其他选项卡?
有几个StackOverflow问题,用于解决将一行数据移动到外部工作表和内部工作表的问题。我想做的是将它们合并在同一张纸中,但是我遇到了脚本工作onEdit
并使用循环写入同一张纸和同一张纸中两个附加标签的问题。
如果选中了“ test1”标签中的复选框,请复制“ test1”,“ test2”和“ completed”标签底部的行
https://docs.google.com/spreadsheets/d/1_wHyVcR-rCBP6doJEQFqjwCdD6gzXsk_eU8p8MusmvY/edit?usp=sharing
function onEdit(event) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
//var sec = SpreadsheetApp.getActiveSheet();
// var s = ss.getSheetByName("test1");
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
// Duplicates an order as a new draft on the last row of the draft tab
if (s.getName() == "test1" && r.getColumn() == 1 && r.getValue() == true) {
var row = r.getRow();
var numColumns = s.getLastColumn();
//var targetSheet = ss.getSheetByName("draft");
var sheets = ['test1','test2','Completed']
for (var i = 0; i < sheets.length; i++) {
var sheetName = sheets[i]
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
if (sheet != null) {
targetsheet(sheet)
}
}
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
sheets.forEach(function(sheet) {
targetsheet(sheet)
})
var target = sheets.getRange(sheets.getLastRow() + 1,1);
s.getRange(row,1,numColumns).copyTo(target);
s.copyRow(row);
}
}
解决方法
尝试一下:
function onMyEdit(e) {
e.source.toast('Entry')
const sh=e.range.getSheet();
const sA=['Sheet2','Sheet3','Sheet4'];//tabs to copy to
if(sh.getName()=='Sheet1' && e.range.columnStart==9 && e.value=="TRUE") {
e.source.toast('Conditional');
const row=sh.getRange(e.range.rowStart,1,sh.getLastColumn()).getValues()[0];
sA.forEach(function(name){
let sh=e.source.getSheetByName(name);
sh.appendRow(row);
});
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。