0
我想設置一個腳本,只有當3個特定的列有一個字符串時,當第4個爲「是」在其中運行的腳本。通過下面的聲明,每當任何一個字段發生變化或者批准的列被更改爲「是」時,它都會運行該腳本。如果當前正在編輯的行是第一行,它也不應該運行。運行功能之前可以檢查多個空白嗎?
function onEditIntake() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = SpreadsheetApp.getActiveSheet();
var r = SpreadsheetApp.getActiveRange();
var row = r.getRow();
var approved = s.getRange(row,10).getDisplayValue();
var iproject = s.getRange(row,7).getDisplayValue();
var assignee = s.getRange(row,8).getDisplayValue();
var deadlineDate = s.getRange(row,9).getDisplayValue();
if (iproject != null && assignee != null && deadlineDate != null && row != "1" && approved != "Yes") {
任何意見將不勝感激!
澄清:每次更改任何字段時,腳本的其餘部分都會運行。我只希望它在滿足所有IF條件時運行。
更新:我已將代碼更改爲如下所示。它現在不會在每次編輯時觸發If語句。但是,只要「Yes」聲明提供給已批准,它就會啓動腳本,而不管其他字段是否爲空,空值,「」或任何其他類型的任何變量。
function onEditIntake() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = SpreadsheetApp.getActiveSheet();
var r = SpreadsheetApp.getActiveRange();
var row = r.getRow();
var approved = s.getRange(row,10).getDisplayValue();
var iproject = s.getRange(row,7).getDisplayValue();
var assignee = s.getRange(row,8).getDisplayValue();
var deadlineDate = s.getRange(row,9).getDisplayValue();
Logger.log("Approved: " + approved);
Logger.log("Project: " + iproject);
Logger.log("Deadline: " + deadlineDate);
Logger.log("Assignee: " + assignee);
if ((iproject != " ") && (assignee != " ") && (deadlineDate != " ") && (row != "1") && (approved == "Yes")) {
你在哪裏檢查'是'?你只是在檢查'approved'是不是'null',所以它可能是'Yes'或'No'。 – Barmar
什麼'console.log(認爲,iproject,受讓人,deadlineDate);'當這種情況發生時顯示? – Barmar
@Barmar我對此很新,但腳本似乎不喜歡console.log。只是一些快速的谷歌搜索似乎指向需要使用記錄器的谷歌腳本? –