Google apps script 为什么赢了';我的代码不能将数据从一个工作表移动到另一个工作表吗?
我有一份包含两张工作表的工作簿: “主控”和“已提交” 当“主”工作表上“p”列中的单词从“待定”更改为“已提交”时,我希望将该行从主工作表中删除,并添加到已提交工作表的最后一行 我可以保存脚本,没有错误,但当我将单元格从“挂起”更改为“已提交”时,什么都不会发生Google apps script 为什么赢了';我的代码不能将数据从一个工作表移动到另一个工作表吗?,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我有一份包含两张工作表的工作簿: “主控”和“已提交” 当“主”工作表上“p”列中的单词从“待定”更改为“已提交”时,我希望将该行从主工作表中删除,并添加到已提交工作表的最后一行 我可以保存脚本,没有错误,但当我将单元格从“挂起”更改为“已提交”时,什么都不会发生 function onEdit(event) { var ss = SpreadsheetApp.getActiveSpreadsheet(); var s = SpreadsheetApp.getActiveSpreadsh
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, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
}
鉴于:
- 选项卡的名称为:主选项卡和已提交选项卡
- 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, 1, 1, s.getLastColumn()).getValues().flat([1]));
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,1,s.getLastColumn()).moveTo(ts.getRange(ts.getLastRow()+1,1));
s.deleteRow(e.range.rowStart);
}
}
您说过您有两个工作表:“MASTER”和“Submitted”,但在代码中您使用了“Submitted”。您确定这不是某种语法错误吗?工具>执行中有错误日志吗?P列是16而不是17