簡體   English   中英

基於選中框的Google表格編輯表

[英]Google Sheets editing sheet based off of checkmark boxes

樣本表

我在Sheet2安裝程序中的A列中包含工作訂單的完整列表。在BI列中,有一個簡單的標記“ TRUE”表示工作已完成。 在sheet1中,我有一個過濾器,僅顯示sheet2中B列中未標記為“ TRUE”的訂單。 在sheet1中的訂單列表旁邊是復選框。 我想要一個可以在選中復選框時讀取的腳本,讀取復選框旁邊的項目,將復選框選中“ FALSE”以將其清除,然后將sheet2中B列中的相應行標記為“ TRUE”,因此項目將列表保留在sheet1上。

我將使用“編輯時”觸發器來設置腳本,但是在創建可以執行這些功能的腳本時需要幫助。

經過大量搜索和自我調試之后,我想到了這個。 這樣看起來還好嗎? 我將把它放在有成千上萬個條目的電子表格中。 我不希望它效率低下。

function MarkComplete() {
  var ss = SpreadsheetApp.getActive();                //Loading Current spreadsheet
  var Display = ss.getSheetByName("Display");         //Loading Display sheet
  var Complete = ss.getSheetByName("Complete");       //Loading Complete sheet
  var data1 = Display.getDataRange().getValues();     //Loading data from sheet 1
  var data2 = Complete.getDataRange().getValues();    //Loading data from sheet 2

  for(var i = 0; i<data1.length;i++){
    Logger.log('List item : ' + data1[i][0]);
    Logger.log('Checked : ' + data1[i][1]);         

    if(data1[i][1] == true){                        //Looking for rows in Display that are checked.
      Logger.log('TRUE : ' + data1[i][0]);

      for(var n = 0; n<data2.length;n++){ 
        if(data2[n][0] == data1[i][0]){               //Looking for rows in Complete that match checked rows in Display
          Complete.getRange(n+1,2).setValue("=true");    //set row x column 2 to true in complete
          Display.getRange(i+1,2).setValue("false");    //set row i column 2 to false in display
        }
      }
    }
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM