+-
我有以下 onEdit(e) Google Apps 脚本,它在另一个工作表的下一行中填充 A:D 列。现在我想让它填充B:E列,并在同一行的A列填充 "SOP "文字。
{
var spreadsheet = e.source;
var sheet = spreadsheet.getActiveSheet();
var sourcesheetname = "SOP Register"
var range = e.range;
var sheet = range.getSheet();
var row = range.getRow();
var column = range.getColumn();
var editedColumn = range.getColumn();
var editedRow = range.getRow();
var column = 7;
var date = range.getValue();
if(Object.prototype.toString.call(date) === '[object Date]' && editedColumn == column && editedRow > 3 && sheet.getName() == sourcesheetname) {
var targetsheetname = "Internal Audit Register";
var target = e.source.getSheetByName(targetsheetname);
var numCols = sheet.getLastColumn();
var values = sheet.getRange(row, 1, 1, numCols).getValues()[0];
values.splice(7)
values.splice(0, 0)
values.splice(1, 0)
values.splice(2, 3); // Removing undesired values
var lastRow = target.getLastRow();
var lastCol = target.getLastColumn();
target.appendRow(values); // Append new row
sheet.hideColumns(6,2);
}
}
下面是我的源表
下面是脚本后的目标表数据。
这是我想要的结果
这是我的电子表格的样本。脚本代码从第67行开始。
电子表格样本
只是不知道怎么做。
2
投票
投票
答案:使用
使用 array.unshift()
在添加行之前,将所需的字符串添加到数组的开头。
更多信息。
根据MDN的文档,在数组的开头添加一个或多个元素,并返回数组的新长度。
unshift()方法在数组的开头添加一个或多个元素,并返回数组的新长度。
因此,在你将新行追加到第二张工作表之前,你需要使用 unshift()
添加字符串 "SOP"
到开头。
{
// ...
var lastRow = target.getLastRow();
var lastCol = target.getLastColumn();
values.unshift("SOP"); // << Add this
target.appendRow(values); // Append new row
sheet.hideColumns(6,1);
sheet.hideColumns(7,1);
}
希望对你有所帮助!