Я пытаюсь написать сценарий для достижения следующего:
Допустим, в полках Google данные вводятся в полку K. Я хотел бы, чтобы полковник L дал мне имя пользователя, который ввелДанные и Col M, чтобы показать мне, когда данные были введены с отметкой времени. Кроме того, если Col K будет обновляться позже в будущем, я хочу, чтобы Col L и M оставались как есть, но Col N показывал имя пользователя обновленного Col K и Col O, чтобы показать метку времени, когда пользователь обновил Col K.
Я написал скрипт (см. Ниже), который, кажется, отлично работает на столбцах K, L, M, N, O, однако, когда я изменяю сценарий на столбцы F, G, H, I,J Я получаю метки времени в столбцах H и J, но я не получаю имена пользователей в столбце G и I, что кажется странным. Может кто-нибудь увидеть, в чем здесь проблема?
function onEdit(event) {
var name = event.range.getSheet().getName();
switch (name) {
case "AA":
update(event)
break;
}
}
function update(event){
var ColK = 11; // Column Number of "K"
var changedRange = SpreadsheetApp.getActiveRange();
if (changedRange.getColumn() == ColK) {
if (changedRange.getRowIndex() >=7 ) {
// An edit has occurred in Column J
var state = changedRange.getValue();
var adjacentDate = SpreadsheetApp.getActive().getSheetByName("AA").getRange(changedRange.getRow(),ColK+4);
var adjacentDate2 = SpreadsheetApp.getActive().getSheetByName("AA").getRange(changedRange.getRow(),ColK+2);
var adjacentLDAP = SpreadsheetApp.getActive().getSheetByName("AA").getRange(changedRange.getRow(),ColK+3);
var adjacentLDAP2 = SpreadsheetApp.getActive().getSheetByName("AA").getRange(changedRange.getRow(),ColK+1);
var timestamp = new Date(); // Get the current time
adjacentDate2.setValue(timestamp);
adjacentLDAP2.setValue(Session.getActiveUser().getEmail());
if (adjacentDate.getValue() == "") {
// Write timestamp into adjacent cell
adjacentDate.setValue(timestamp);
adjacentLDAP.setValue(Session.getActiveUser().getEmail());
}
}
}
}