[英]Google Sheets onEdit - trying to copy a row to a new sheet by changing the value of a column within that same row
Please see Sheet1 of my spreadsheet:请参阅我的电子表格的 Sheet1:
https://docs.google.com/spreadsheets/d/1EoOIQxWyKWOvtlCrmJNI76FAxGhzgXrE4s0F05tw2MY/edit#gid=0 https://docs.google.com/spreadsheets/d/1EoOIQxWyKWOvtlCrmJNI76FAxGhzgXrE4s0F05tw2MY/edit#gid=0
As an example, I would like to copy the values (not formulas) of A3:G3 to the bottom row of the 'Master' sheet by changing the value in H3 to "submitResponse."例如,我想通过将 H3 中的值更改为“submitResponse”,将 A3:G3 的值(不是公式)复制到“主”表的底行。 Then, once that row is copied, I would like to automatically clear out cell H3, as well as range A2:G2 (the row ABOVE the row that was copied) because these will be variables that the user edits to adjust A3:G3 before it gets copied.然后,一旦复制了该行,我想自动清除单元格 H3 以及范围 A2:G2(复制的行上方的行),因为这些将是用户编辑以调整 A3:G3 之前的变量它被复制了。
To help, here is a script that @Cooper built for me to push me in the right direction:为了提供帮助,这是@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]);
}
}
from this previous question: Modifying a flexible Google Sheets onEdit script to accommodate a wider range of inputs来自上一个问题: 修改灵活的 Google 表格 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();
}
}
Update 2:更新 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();
}
}
With Update 2
you were really close to solve this issue.使用Update 2
,您非常接近解决这个问题。 However, you had a typo, replace:但是,您有一个错字,请替换:
rowAbove.ClearContent();
with和
rowAbove.clearContent();
I hope this has helped you.我希望这对你有所帮助。 Let me know if you need anything else or if you did not understood something.让我知道您是否需要其他任何内容,或者您是否不理解某些内容。 :) :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.