修改要点:
当我看到您提供的Electron 表格时,第一个表格名称是Operational sheet
.那不是Operational Sheet
.因此,当使用您的show脚本时,我担心col === 1 && e.source.getActiveSheet().getName() === "Operational Sheet"
总是返回false
.请注意这一点.
在本例中,大约有I have this script, but it only works when changing a cell manually, not when copying and pasting.
行,我猜您可能想要复制并粘贴多行.
当这些要点反映在样例脚本中时,下面的脚本如何?
修改后的脚本:
在测试此脚本之前,请再次确认您的工作表名称.
function onEdit(e) {
var sheetName = "Operational sheet"; // Please confirm your sheet name again.
var { range } = e;
var sheet = range.getSheet();
if (range.columnStart != 1 || sheet.getSheetName() != sheetName) return;
sheet.getRange(range.rowStart, 3, range.rowEnd - range.rowStart + 1).setValue(Utilities.formatDate(new Date(), "GMT+9:00", "dd.MM.yyyy"));
}
- 在此示例脚本中,当将多个行从列"A"复制到"操作表"工作表时,值
Utilities.formatDate(new Date(), "GMT+9:00", "dd.MM.yyyy")
将放入复制行的列"C"中.
注:
如果只想在列"A"和"B"具有复制行中的值时才将日期放到列"C",请测试以下脚本.
function onEdit(e) {
var sheetName = "Operational sheet"; // Please confirm your sheet name again.
var { range } = e;
var sheet = range.getSheet();
if (range.columnStart != 1 || sheet.getSheetName() != sheetName) return;
var values = range.getDisplayValues();
var rowStart = range.rowStart;
var ranges = values.reduce((ar, r, i) => {
if (r.every(e => e)) {
ar.push(`C${i + rowStart}`);
}
return ar;
}, []);
if (ranges.length == 0) return;
sheet.getRangeList(ranges).setValue(Utilities.formatDate(new Date(), "GMT+9:00", "dd.MM.yyyy"));
}
参考资料: