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
Javascript 根据状态将图纸ID更新为其他图纸_Javascript_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 根据状态将图纸ID更新为其他图纸

Javascript 根据状态将图纸ID更新为其他图纸,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我需要找到一个解决方案,根据Sheet1的状态更新Google Sheet2。例如,如果我将第2列中的Sheet1状态更新为“可用”,我希望获取第1列的ID并将其放置在Sheet2中(但要避免重复,如果可用) 这是我的示例工作表 我发现这段代码更接近我的工作预期,但我需要稍作修改,我试着玩了一下,但没有达到预期效果。我怎样才能解决这个问题 function onEdit(e) { if(e.range.getSheet().getName() != 'Sheet1'){return;}

我需要找到一个解决方案,根据Sheet1的状态更新Google Sheet2。例如,如果我将第2列中的Sheet1状态更新为“可用”,我希望获取第1列的ID并将其放置在Sheet2中(但要避免重复,如果可用)

这是我的示例工作表

我发现这段代码更接近我的工作预期,但我需要稍作修改,我试着玩了一下,但没有达到预期效果。我怎样才能解决这个问题

function onEdit(e) {
  if(e.range.getSheet().getName() != 'Sheet1'){return;}
  if(e.range.columnStart==2) {
    var id=e.range.offset(0,-1).getValue();
    var rg=e.source.getSheetByName('Sheet2').getDataRange()
    var vA=rg.getValues();
    for(var i=1;i<vA.length;i++) {
      if(vA[i][0]==id) {
        vA[i][1]=e.value;
        break;
      }
    }    
  }
  rg.setValues(vA);
}
函数onEdit(e){
如果(e.range.getSheet().getName()!='Sheet1'){return;}
if(e.range.columnStart==2){
var id=e.range.offset(0,-1).getValue();
var rg=e.source.getSheetByName('Sheet2').getDataRange()
var vA=rg.getValues();
对于(var i=1;i请尝试此脚本

函数onEdit(e){
const sh=e.range.getSheet();
如果(sh.getName()!='Sheet1'| | e.range.columnStart!==2 | | e.value!=='AVAILABLE'){return;}
const rg=e.source.getSheetByName('Sheet2')
常量值=rg.getRange(“A:A”).getValues().flat().filter(字符串)
const id=e.range.offset(0,-1).getValue();
如果(!values.includes(id)){
rg.appendRow([id])
}

}
将sheet1中的行移动/复制到sheet2后,是否要删除该行?如果发现重复的id怎么办?是否仍要删除该行?还是应该将其保留在sheet1中?不删除,只是复制。如果发现重复,则不删除,但不复制到sheet2这可以通过简单的公式完成。是否确实需要脚本?是的,bec因为我们有一个操作来编辑或删除Sheet2中的行,添加公式可能会使事情变得复杂。所以最好用脚本复制ID。我有一个小问题需要解决,数据在Sheet2中以a列的随机行复制,而不是在a列的最后一个数据之后按顺序复制。您能帮我解决吗?e、 g.当前代码复制到第13、15、19等行的列中。我希望此副本按顺序排列,以便10、11、12、13继续…即在该行的最后一个条目之后。