![](/img/trans.png)
[英]Creating a new Google Sheet based off a template and exporting data from Master Sheet to newly created sheets
[英]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.