Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 如果公式触发,谷歌工作表将行复制到新工作表_Google Apps Script_Google Sheets_Formula - Fatal编程技术网

Google apps script 如果公式触发,谷歌工作表将行复制到新工作表

Google apps script 如果公式触发,谷歌工作表将行复制到新工作表,google-apps-script,google-sheets,formula,Google Apps Script,Google Sheets,Formula,当B列显示“开始”时,我尝试使用一个标准的复制行从一张图纸复制到另一张图纸代码,但B列中有以下公式: =如果(A2=“完成”、“开始”、“尚未”) 这段代码似乎没有识别从“尚未”到“开始”的公式。任何帮助都将不胜感激。谢谢 函数onEdit(事件){ //假定工作表中的源数据名为“需要” //已获取移动到命名的目标工作表 //带是/否的测试柱为第4列或第D列 var ss=SpreadsheetApp.getActiveSpreadsheet(); var s=event.source.get

当B列显示“开始”时,我尝试使用一个标准的复制行从一张图纸复制到另一张图纸代码,但B列中有以下公式:

=如果(A2=“完成”、“开始”、“尚未”)

这段代码似乎没有识别从“尚未”到“开始”的公式。任何帮助都将不胜感激。谢谢

函数onEdit(事件){
//假定工作表中的源数据名为“需要”
//已获取移动到命名的目标工作表
//带是/否的测试柱为第4列或第D列
var ss=SpreadsheetApp.getActiveSpreadsheet();
var s=event.source.getActiveSheet();
var r=event.source.getActiveRange();
如果(s.getName()==“Temp”&&r.getColumn()==1&&r.getValue()==“Complete”){
var row=r.getRow();
var numColumns=s.getLastColumn();
var targetSheet=ss.getSheetByName(“开始”);
var target=targetSheet.getRange(targetSheet.getLastRow()+1,1);
s、 getRange(行,1,1,numColumns).moveTo(目标);
s、 删除行(row);
}

}
问题不在于它无法“识别”公式更改值。如果您在复制公式后再次查看公式,您应该注意到引用从
A2
更改为
Temp!A2

其工作原理类似于单独将每个单元格剪切粘贴到其新操作中。这导致了对其原始单元格的引用的“保持”

如果这不是你想要的,也许你应该切换到。这可能会在你的配方中产生其他副作用。但是对于你举例说明的这个简单的例子来说应该很好

s.getRange(row, 1, 1, numColumns).copyTo(target); //try copyTo here