如何解决使用复选框将数据从同一行中的一行移动到另一行
我当前有一排带有下拉列表的行,一旦选择了选项并标记了该行末尾的复选框,我想将该行中的数据移动到同一工作表中的单独列表中,然后清除初始一排选择。
只有1行(第3行)有5列数据(Col A,B,C和D / E合并,F中的复选框)。我希望将数据移到第10行,并在每次输入数据并在第3行中选中该框时继续在列表中向下浏览。
function onEdit(event) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
if(s.getName() == "WarMistakes" && r.getColumn() == 6 && r.getValue() == true) {
var row = r.getRow();
var targetSheet = ss.getSheetByName("WarMistakes");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1,1);
s.getRange(row,9,1,numColumns).moveTo(target);
s.deleteRow(row);
}
}
解决方法
尝试一下:
function onEdit(e) {
const row = e.range.getRow();
const col = e.range.getColumn();
const s = e.source.getSheetByName("SourceSheet");
const ts = e.source.getSheetByName("WarMistakes");
const as = e.source.getActiveSheet();
if(as.getName() == "SourceSheet" && col == 6 && row == 3 && as.getRange(row,col).getDisplayValue() === "TRUE") {
const data = s.getRange(row,1,5).getValues();
if(ts.getLastRow()>=10){ s.getRange(s.getLastRow()+1,data.length,data[0].length).setValues(data);}
else{ts.getRange(10,data[0].length).setValues(data);}
s.getRange(3,6).setValue("FALSE");
s.getRange(row,5).clearContent();
}
}
说明:
单击单元格 F3 后,AD / E中 SourceSheet 中的数据将移至 WarMistakes 第10行和脚本中取消选中该复选框。 如果第10行中有内容,则将其附加在其后,依此类推。 请使用与我相同的工作表名称: SourceSheet , WarMistakes 或根据您的需要调整代码。
步骤1(您单击 SourceSheet 中单元格 F3 中的复选框):
第2步(数据已移至 WarMistakes 中的第10行):
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。