Google Sheets onEdit - 尝试通过更改同一行中列的值来将行复制到新工作表

2023-12-09

请参阅我的电子表格的 Sheet1:

https://docs.google.com/spreadsheets/d/1EoOIQxWyKWOvtlCrmJNI76FAxGhzgXrE4s0F05tw2MY/edit#gid=0

例如,我想通过将 H3 中的值更改为“submitResponse”,将 A3:G3 的值(不是公式)复制到“主”表的底行。然后,一旦复制该行,我想自动清除单元格 H3 以及范围 A2:G2 (复制的行上方的行),因为这些将是用户之前编辑以调整 A3:G3 的变量它被复制。

为了提供帮助,这里有一个 @Cooper 为我构建的脚本,可以将我推向正确的方向:

function onEdit(e){
  var sh=e.range.getSheet();
  if (sh.getName()=='Sheet1' && e.range.columnStart==8 && e.range.rowStart>1 && e.value=="submitResponse") {
    var msh=e.source.getSheetByName("Master");
    msh.appendRow(sh.getRange(e.range.rowStart,1,1,7).getDisplayValues()[0]);
  }
}

来自上一个问题:修改灵活的 Google Sheets onEdit 脚本以适应更广泛的输入

Update:

function onEdit(e){ 
  var done = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange('Y:Y'); 
  var sh=e.range.getSheet(); 
  if (sh.getName()=='submit' && e.range.columnStart==25 && e.range.rowStart>1 && e.value=="submit") { 
    var msh=e.source.getSheetByName("db"); 
    msh.appendRow(sh.getRange(e.range.rowStart,1,1,24).getDisplayValues()[0]); 
    done.clearContent(); 
  } 
 }

更新2:

function onEdit(e){
  var submitColumn = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange('Y:Y');
  var rowAbove = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange('J11:L11');
  var sh=e.range.getSheet();
  if (sh.getName()=='submit' && e.range.columnStart==25 && e.range.rowStart>1 && e.value=="submit") {
    var msh=e.source.getSheetByName("db");
    msh.appendRow(sh.getRange(e.range.rowStart,1,1,24).getDisplayValues()[0]);
    submitColumn.clearContent();
    rowAbove.ClearContent();
  }
}

Solution

With Update 2你真的很接近解决这个问题了。但是,您有一个拼写错误,请替换:

rowAbove.ClearContent();

with

rowAbove.clearContent();

我希望这对你有帮助。如果您需要其他任何信息或者您不明白某些内容,请告诉我。 :)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google Sheets onEdit - 尝试通过更改同一行中列的值来将行复制到新工作表 的相关文章

随机推荐