2016-05-12 50 views
0

我有一張非常大的數據表,其中註釋應用於不同的項目(共16個)。每個評論都有一個狀態,如活動,確認,取消或空白(如果不適用)應用於項目源和目標工作表的動態鏈接

用戶很難用源表中的過濾器更新狀態,因爲當許多用戶使用表單時,他們無法更新同時應用不同的過濾器。

最好的方法是將源表中的所有數據都拉到許多目標工作表(每個項目一個)並根據項目應用過濾器,以便用戶可以更新目標工作表中的狀態。我的問題是如何從目標工作表中獲取新的更新狀態到源表單中。

我發現了一個腳本,可以在源表中更改或添加內容時自動更新所有目標工作表,但當我更改目標工作表(項目工作表)中的狀態時,我還需要更新源工作表。請參見下面的腳本:

function getdata() { 
    var files = DriveApp.getFolderById(""folder key with target sheets"").getFiles() 
    while (files.hasNext()) { 
     var file = files.next(); 
     var shoot = SpreadsheetApp.openById(file.getId()); 

     var sourcesheet = SpreadsheetApp.getActive().getSheetByName(""source sheet name""); 
     var sourcerange = sourcesheet.getRange('A:AE'); 
     var sourcevalues = sourcerange.getValues(); 

    var destsheet = shoot.getSheetByName('target sheets name same for all'); 
     var destrange = destsheet.getRange('A:AE'); 
    destrange.setValues(sourcevalues);   

見下面我的源片的鏈接:

https://docs.google.com/spreadsheets/d/1h0mpPo2nl9AoCF-hJDjMaU3sZg-qBX4dat7Ig4poAJo/edit?usp=sharing

片「的形式迴應新」通過形式接收來自用戶的意見,我手動剪切並粘貼在審覈和提交後在「表」中「發送」。

+0

據我所知,這裏似乎沒有實際的問題? – halfer

回答

0

您可能想要查看爲單個工作表中的每個項目製作filter views。過濾器視圖僅適用於使用該過濾器的人員,並且不會爲其他人修改過濾器視圖。從你的問題來看,這可能是一個比同步腳本更好的解決方案。

但是要回答在每個項目表中回答問題onEdit event的問題可以管理反向更新。

function onEdit(event){ 
    var range = event.range; 
    if(range.getSheet().getName() == "Sheet1" && range.getColumn() > 1 && range.getRow() > 1){//example conditionals to limit the action to exclude headers or other static data could be changed to work specific cells or ranges 
    var mainsheet = SpreadsheetApp.openByUrl("main spreadsheet URL").getSheetByName("destination sheet"); 
    var dataA1 = range.getA1Notation(); 
    range.copyTo(mainsheet.getRange(dataA1)); 

    } 
} 

這是一個簡單的觸發器,並要求您的用戶有編輯訪問您的主表。如果你不想給他們那個訪問權限,你可以用installable trigger來代替。