gpt4 book ai didi

javascript - 删除或更新一系列单元格时,谷歌表格时间戳脚本不更新

转载 作者:行者123 更新时间:2023-11-28 04:20:52 25 4
gpt4 key购买 nike

这是我第一次发帖,所以我希望我做的一切都是正确的:)

我在 Google 表格中实现了一个脚本,当在该行上编辑单元格时,该脚本会在 B 列中创建时间戳。

它工作完美,除了:

  1. 当我选择一系列单元格并按“删除”时,即使我修改了多个单元格,也只有一个时间戳会更新(事件单元格的时间戳)
  2. 如果我向下拖动以将值从一个单元格向下自动填充到多个单元格(例如,如果我从 A1 向下拖动到 A5,以使用 A1 中的值填充 A2-A5),则仅使用第一个时间戳(例如,A2)更新,其余部分保持原样。

有什么想法可以解决这些问题吗?

这是我的代码

function onEdit(e) {
var s = SpreadsheetApp.getActiveSheet();
var r = s.getActiveCell();
if( r.getColumn() != 2 && e.source.getActiveSheet().getName() === "MySheet") { //checks the column & checks the sheet is the correct one
var row = r.getRow();
var time = new Date();
time = Utilities.formatDate(time, "GMT+10:00", "dd/MM/yyyy HH:mm:ss");
SpreadsheetApp.getActiveSheet().getRange('B' + row.toString()).setValue(time);
};
};

这是一个包含代码的电子表格示例:

https://docs.google.com/a/eventsafetyservices.com.au/spreadsheets/d/1hFtS-diq_8QsWwqFTIlHg8zHxpvVUsDZex0nSuvXizg/edit?usp=sharing

最佳答案

将事件对象用于与该操作相关的所有内容通常是一种很好的做法。

处理多行可以通过进一步使用事件的范围来获取事件的范围来处理。

function onEdit(e) {
var r = e.range;

if(r.getColumn() !== 2 && r.getSheet().getName() === "MySheet") {
var row = r.getRow();
var lastRow = r.getLastRow();
var time = new Date();
time = Utilities.formatDate(time, "GMT+10:00", "dd/MM/yyyy HH:mm:ss");

r.getSheet().getRange(row, 2, lastRow - row + 1, 1).setValue(time);
};
};

关于javascript - 删除或更新一系列单元格时,谷歌表格时间戳脚本不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45455764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com