我对此还比较陌生,我在一家小公司工作,我试图建立一种登记系统来跟踪订单和支票,而自动约会则是一个很大的节省时间的方法。
自动取款机我有一个第一页的工作代码(见下文),它在第一栏编辑第二栏时自动日期,它的工作原理是,我得到的问题是,它在每一页上工作一样,我需要第二和第三页自动日期,当第三栏被编辑,而不是第二列。
我是否可以修改这个脚本,以便它在同一文档上的不同工作表上的工作方式不同?
//------------------------------------------------------------
//Auto-Populate date in Column A of when column B is updated
//Edited 01/13/16 - MK
//------------------------------------------------------------
function onEdit(event) {
var eventRange = event.range;
if (eventRange.getColumn() == 2) { // 2 == column B
// getRange(row, column, numRows, numColumns)
var columnXRange = SpreadsheetApp.getActiveSheet().getRange(eventRange.getRow(), 1, eventRange.getNumRows(), 1);
var values = columnXRange.getValues();
for (var i = 0; i < values.length; i++) {
if (!values[i][0]) { // If cell isn't empty
values[i][0] = new Date();
}
}
columnXRange.setValues(values);
}
}发布于 2022-07-26 00:22:51
这样试一试:
function onEdit(e) {
const sh = e.range.getSheet();
const sA = ["Sheet1", "Sheet2", "Sheet3"];
const cA = [2, 3, 3];
const idx = sA.indexOf(sh.getName());
if (~idx && e.range.columnStart == cA[idx]) {
sh.getRange(e.range.rowStart,1).setValue(new Date());
}
}发布于 2022-07-26 03:20:37
建议
据我理解,您希望您的脚本动态地调整您执行编辑的位置:
B,就会在第1列或A的相邻行上添加时间戳。C,就会在第1列或A的相邻行上添加时间戳。您可以在下面使用更少的代码行来尝试这个实现&您将不再需要编辑脚本来定义每个列,而是只需要编辑工作表本身,以防将来添加多个工作表:
脚本
function onEdit(e) {
e.source.getActiveSheet().getRange(1, e.range.getColumn()).getValue().includes("*") && e.range.getRow() != 1 ? //Checks if the cell being edited under a column title contains an identifier, which is an asterisk sign (*)
e.source.getActiveSheet().getRange(e.range.getRow(), 1).setValue(new Date()) : //If true, then the adjacent row on Column A will add a timestamp
null; //If false, nothing will happen
}游行示威
这个示例中使用的标识符是第1行的列标题之后的星号(*)。

在编辑包含identifier__,的列标题下的任何行时,会在编辑后的列
A上的行旁边添加时间戳,如下所示。否则,将不会在A列中添加任何内容


参考文献
https://stackoverflow.com/questions/73115034
复制相似问题