我需要我的团队在A列中输入他们的姓名,在B列中输入LOGIN或LOGOUT,在C列中需要登录时间戳,在D列中需要注销时间戳。我需要在每个字段中重复30天(一个月)工作表,这意味着B,C和D列将在工作表中重复30次。
名称-登录/注销-登录时间戳-退出时间戳
我在YouTube中找到了此代码(经过了微调),该代码在第二列和第三列中创建了两个时间戳记,第二列在第1列更新时更新为新时间,而第一列保持不变。我计划通过在用户输入LOGIN时隐藏第二个时间戳(使用条件格式)来使用此标记,然后在用户输入LOGOUT时取消隐藏它。但是,我不知道以后几天如何将此脚本调用到第4列。我花了整整一整天的时间才弄清楚这一点,但是我的脚本知识非常有限。任何帮助是极大的赞赏。非常感谢。
function onEdit(e) {
var row = e.range.getRow();
var col = e.range.getColumn();
if(col === 1 && row >= 1 && e.source.getActiveSheet().getName() === "Test"){
var currentDate = new Date();
e.source.getActiveSheet().getRange(row,3).setValue(currentDate);
if(e.source.getActiveSheet().getRange(row,2).getValue() == ""){
e.source.getActiveSheet().getRange(row,2).setValue(currentDate);
}
}
}
检查已编辑行的C列是否为空白;如果是,将currentDate
放在第3列中。如果不是,请将其放在第4列中。
function onEdit(e) {
var row = e.range.getRow();
var col = e.range.getColumn();
if(col === 2 && row >= 1 && e.source.getActiveSheet().getName() === "Test") {
var currentDate = new Date();
if (e.source.getActiveSheet().getRange(row, 3).isBlank() === true) {
e.source.getActiveSheet().getRange(row, 3).setValue(currentDate);
}
else {
e.source.getActiveSheet().getRange(row, 4).setValue(currentDate);
}
}
}
希望对您有帮助!
您只需要更新列值。为了使您更容易理解要编辑的单元格,我创建了Range
,.isBlank()
和status_col
。
login_ts_col