Google apps script 基于单元格值的重复行

Google apps script 基于单元格值的重复行,google-apps-script,Google Apps Script,我想根据单元格值复制行,然后删除红色的单元格值,这样当重新运行脚本时,就不会在同一行上再次工作 我尝试了脚本,但它有两个问题 1-单元格值保持不变,因此当重新运行脚本时,它将导致同一行的重复 2-删除我在整个工作表中编写的公式 如果要检查脚本,则该脚本仍存在于appscript中 单行自动复制 动画: 自动复制多行 动画: 您的示例仅显示了一行,重复项仅应用于第一行。所以你需要改变你的描述,这样我们才能理解你真正想要的。我照你说的做了。我明白了,那很有用。非常感谢。我看了动画,它会起作用的,我真

我想根据单元格值复制行,然后删除红色的单元格值,这样当重新运行脚本时,就不会在同一行上再次工作

我尝试了脚本,但它有两个问题

1-单元格值保持不变,因此当重新运行脚本时,它将导致同一行的重复 2-删除我在整个工作表中编写的公式

如果要检查脚本,则该脚本仍存在于appscript中

单行自动复制

动画:

自动复制多行

动画:


您的示例仅显示了一行,重复项仅应用于第一行。所以你需要改变你的描述,这样我们才能理解你真正想要的。我照你说的做了。我明白了,那很有用。非常感谢。我看了动画,它会起作用的,我真的很高兴
function AutoDuplicate() {
  var ss=SpreadsheetApp.getActive()
  var sh=ss.getActiveSheet();
  var rg=sh.getDataRange();
  var vA=rg.getDisplayValues();
  var bA=rg.getBackgrounds();
  var v=[];
  var b=[]
  for(var i=0;i<vA.length;i++){
    var t1=bA[i][7];
    var t2=vA[i][7];
    if(bA[i][7]=='#ff0000' && !isNaN(vA[i][7]) && Number(vA[i][7])>0) {
      bA[i][7]='#ffffff';
      for(var j=0;j<vA[i][7];j++) {
        v.push(vA[i]);
      }
      b.push(bA[i]);
      sh.getRange(1,1,v.length,v[0].length).setValues(v);
      sh.getRange(1,1,b.length,b[0].length).setBackgrounds(b);
    }
  }
}    
function autoDupeForMultipleRows() {
  var ss=SpreadsheetApp.getActive()
  var sh=ss.getActiveSheet();
  var rg=sh.getDataRange();
  var vA=rg.getDisplayValues();
  var bA=rg.getBackgrounds();
  var v=[];
  var b=[];
  var a=0;
  for(var i=0;i<vA.length;i++){
    if(bA[i][7]=='#ff0000' && !isNaN(vA[i][7]) && Number(vA[i][7])>0) {
      bA[i][7]='#ffffff';
      for(var j=0;j<=vA[i][7];j++) {
        v.push(vA[i]);
        b.push(bA[i]);
      }
    }
  }
  sh.clearContents();
  var org=sh.getRange(1,1,v.length,v[0].length).setValues(v);
  org.setBackgrounds(b);
}