如何解决为什么我的代码不会将数据从一个工作表移动到另一工作?
我有一个带有两个工作表的工作簿:
“主”和“已提交”
当“主”表上的“ P”列中的单词从“待处理”更改为“已提交”时,我希望将该行从主表中删除并添加到已提交表的最后一行。 / p>
我可以毫无错误地保存脚本,但是当我将单元格从“挂起”更改为“已提交”时,没有任何反应...
function onEdit(event) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var r = SpreadsheetApp.getActiveSpreadsheet().getActiveRange();
if(s.getName() == "MASTER" && r.getColumn() == 17 && r.getValue() == "SUBMITTED") {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("SUBMITTED");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1,1);
s.getRange(row,1,numColumns).moveTo(target);
s.deleteRow(row);
}
}
解决方法
尝试一下:
function onEdit(e) {
const s=e.range.getSheet();
if(s.getName()=="MASTER" && e.range.columnStart==16 && e.value=="SUBMITTED") {
const ts=e.source.getSheetByName('SUBMITTED');
s.getRange(e.range.rowStart,1,s.getLastColumn()).moveTo(ts.getRange(ts.getLastRow()+1,1));
s.deleteRow(e.range.rowStart);
}
}
,
鉴于:
- 选项卡的名称为: MASTER 和 SUBMITTED , P列中的
- 单元格需要编辑为以下值: SUBMITTED ,
- P列为 16 而不是17。
这将起作用:
function onEdit(e) {
const row = e.range.getRow();
const col = e.range.getColumn();
const s = e.source.getSheetByName("MASTER")
const as = e.source.getActiveSheet();
const targetSheet = e.source.getSheetByName("SUBMITTED");
if(as.getName() == "MASTER" && col == 16 && as.getRange(row,col).getValue() == "SUBMITTED") {
targetSheet.appendRow(s.getRange(row,s.getLastColumn()).getValues().flat([1]));
s.deleteRow(row);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。