2013-02-13 67 views
1

我一直在試圖獲取谷歌電子表格時,另一個單元被編輯的數據自動添加到單元格被編輯一個單元格添加數據,但我只能似乎使onedit功能工作全球。要時自動另一個單元在谷歌電子表格

具體地,如果B2,B3,B4等被編輯的,我想N2,N3,N4等,以具有時間戳,或用戶的名稱自動填充。

任何幫助將不勝感激!

感謝

回答

1

擴大對答案here ...

function onEdit(e) 
{ 
    var row = e.range.getRow(); 
    var sheet = e.range.getSheet(); 

    // if B2, B3, B4 etc. was edited, fill N2, N3, N4 etc. with a timestamp 
    var value = new Date(); 
    // ... or the user's name. 
    // var value = Session.getActiveUser().getEmail(); 

    var headerRows = 1; // # header rows to ignore 

    // Skip header rows 
    if (row <= headerRows) return; 

    // We're only interested in column B (aka 2) 
    if (e.range.getColumn() != 2) return; 

    sheet.getRange(row,14).setValue(value); // N<row> 
} 
0

對於其他人可能要自動添加插入數據的日期和時間。

我剛碰到這個問題,我修改了Internet Geeks提供的代碼。

他們的代碼工作通過更新指定列中,時間戳被插入另一個指定列中相同行英寸

我改變的是我分開的日期和時間,因爲時間戳是一個字符串,而不是日期格式。我的是生成圖形很有用。

它通過指定列跟蹤更改,然後分別創建的日期和時間的更新和正常運行時間列。

function onEdit(event) { 
    var timezone = "GMT+1"; 
    var date_format = "MM/dd/yyyy"; 
    var time_format = "hh:mm"; 

    var updateColName = "Резултат"; 

    var DateColName = "upDate"; 
    var TimeColName = "upTime"; 

    var sheet = event.source.getActiveSheet(); // All sheets 
    // var sheet = event.source.getSheetByName('Test'); //Name of the sheet where you want to run this script. 

    var actRng = event.source.getActiveRange(); 
    var editColumn = actRng.getColumn(); 
    var index = actRng.getRowIndex(); 
    var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues(); 

    var dateCol = headers[0].indexOf(DateColName); 
    var timeCol = headers[0].indexOf(TimeColName); 

    var updateCol = headers[0].indexOf(updateColName); 
    updateCol = updateCol + 1; 

    if (dateCol > -1 && timeCol > -1 && index > 1 && editColumn == updateCol) { 
    // only timestamp if 'Last Updated' header exists, but not in the header row itself! 

    var cellDate = sheet.getRange(index, dateCol + 1); 
    var cellTime = sheet.getRange(index, timeCol + 1); 

    var date = Utilities.formatDate(new Date(), timezone, date_format); 
    var time = Utilities.formatDate(new Date(), timezone, time_format); 

    cellDate.setValue(date); 
    cellTime.setValue(time); 
    } 
} 

希望這有助於人們。

相關問題