2015-06-18 14 views
0

我正在使用Google Spreadsheets:從電子表格中清除無效值

我有一個電子表格,基本上是一個4周的計劃。每一天都分成幾個插槽,可以分配給我們的任何活動客戶端。這些單元格具有拒絕無效值的驗證規則。

驗證規則允許的數據來源於單獨表單上的列表,當客戶狀態從「活動」更改爲「已取消」時,這些數據會過濾掉客戶端,這意味着客戶端無法再分配。狀態是手動更改的。一旦分配的客戶端更改爲「已取消」,它將成爲日曆上的無效客戶端。

有沒有一種方法,使用腳本,找到並清除包含這些無效值的單元格的值?我在下面添加了屏幕截圖。紅色的角落是無效的值。

我已經設置了onEdit觸發器來運行代碼,這將調用一個函數來處理這個特定的區域。

screen clipping

任何幫助將不勝感激。

+0

是的,有一種方法。首先需要確定的是什麼會觸發代碼檢查無效值?指定客戶如何更改爲「已取消」?有人編輯過一個單元格?發生編輯時,您可以運行代碼。 –

+0

謝謝,我用這個你需要的信息更新了我的問題。 – Jamie

回答

0

的代碼會是這個樣子:

function onEdit(e) { 
    //First check if you want the entire code to execute 
    if (myNeededCondtion !=== "theValueToMach") { 
    //End the code here 
    return; 
    } 

    var mySpreadsheet = SpreadsheetApp.getActiveSpreadsheet(); 
    var theSheet = mySpreadsheet.getSheetByName("name of sheet"); 

    var arrayOfColumnValues = theSheet.getRange(row to start at, column to start at, numRows, numColumns).getValues(); 

    var i=0; 
    var thisValue = ""; 

    for (i=0;i<arrayOfColumnValues.length;i+=1) { 
    thisValue = arrayOfColumnValues[i][0]; 
    if (thisValue==="Cancelled") { 
     //Set the cell value to a blank string 
     theSheet.getRange(i, column).setValue(""); 
    }; 
    }; 
}; 

你需要弄清楚什麼範圍值參數必須和編輯代碼。將正確的工作表名稱添加到getSheetByName方法中。請注意,getValues()返回一個二維數組。每個內部數組表示一行。如果只有一列數據,那麼每個內部數組只有一個元素。數組從零開始索引。

相關問題