【发布时间】:2019-04-17 02:38:40
【问题描述】:
希望使用脚本根据谷歌表格中的值移动单元格。对所有这一切都超级绿色,就在观看了一些有关基础知识的视频并使用网站上找到的代码之后,试图使其适用于我的电子表格。
function doneCopy() {
var app = SpreadsheetApp;
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheetNameToWatch = ss.getSheetByName("Current")
var columnNumberToWatch = 8;
var valueToWatch = "DONE" ;
var sheetNameToMoveTheRowTo = "OLD";
//var ss = SpreadsheetApp.getActiveSpreadsheet();//this has already been declared
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getActiveCell();
if (sheet.getName() == "Current" && range.getColumn() == 8 && range.getValue() == "DONE") {
var targetSheet = ss.getSheetByName("OLD");
var targetRange = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
sheet.getRange(range.getRow(), 1, 1, sheet.getLastColumn()).moveTo(targetRange);
sheet.deleteRow(range.getRow());
}
}
它似乎根本不工作。这是电子表格的链接:https://docs.google.com/spreadsheets/d/1iRMuKKhC83lot4TV2dbOfBlgdtVzSuZ0rkoWKyTOUIM/edit?usp=sharing
最终目标:当“状态”列为“完成”时,整行被移动到“旧”工作表(在底部添加一行),然后从“当前”工作表中删除
【问题讨论】:
-
在您的共享电子表格中,工作表名称“OLD”变为
" OLD",顶部字母有一个空格。当脚本运行时,targetSheet变为null并在var targetRange = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);处发生错误。所以请将“OLD”的工作表名称从" OLD"修改为OLD,然后再次运行。 -
哇。这很有趣。
-
已修复,工作表已从“OLD”更正为“OLD”
-
还是不行。
-
很抱歉我的评论对您的情况没有用处。可以提供
Still not working.的详细信息吗?这样,它将帮助用户思考您的解决方案。