2017-03-01 41 views
0

有人可以幫我用這個腳本嗎?Google表格:觸發器腳本中間值

function HistoryTrigger() { 
var ss = SpreadsheetApp.getActiveSpreadsheet(); 
if (sheet.getName() == "Status") { 
    var activeCell = sheet.getRange("G11"); 
    if (activeCell.getValue() ="OK") { 
     recordHistory(); 

    } 
    } 
} 

function recordHistory() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheetByName("Historie"); 
    var source = sheet.getRange("A2:B2"); 
    var values = source.getValues(); 
    values[0][0] = new Date(); 
    sheet.appendRow(values[0]); 
}; 

我想觸發啓動時Status!G11="OK",然後開始recordHistory()

回答

0

嘗試:

if (activeCell.getValue() =="OK") {

==是if語句的語法正確。

您可以用onEdit運行這個functoin:

function onEdit(e) { 
    if (e.range.getSheet().getName() === 'Status') { HistoryTrigger(); } 
} 

它會檢查每次用戶改變一些東西。當「狀態」表格中的G11正常時,它將運行。

結合在一起的一切,我建議通過eHistoryTrigger

function onEdit(e) { 
     HistoryTrigger(e); 
    } 


function HistoryTrigger(e) { 

var ss = e.range.getSheet(); 
if (ss.getName() === 'Status') { 
    var activeCell = ss.getRange("G11"); 
    if (activeCell.getValue() == "OK") { 
     recordHistory(); 

    } 
    } 
} 

function recordHistory() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheetByName("Historie"); 
    var source = sheet.getRange("A2:B2"); 
    var values = source.getValues(); 
    values[0][0] = new Date(); 
    sheet.appendRow(values[0]); 
}; 
+0

啊哈,感謝:-) 但我必須添加一個觸發器爲每分鐘運行,以檢查電池是否是G11好的,還是會在G11運行時運行? – Hkroed

+1

HistoryTrigger函數可以直接設置爲[OnEdit觸發器](https://developers.google.com/apps-script/guides/triggers/events)。請注意,當任何單元格更改爲「OK」而不僅僅是Status!G11時,上述響應將適用。爲了限制這個特定的單元格,將HistoryTrigger finction設置爲每個鏈接頁面的onEdit觸發器。接下來,將第一行更改爲'function HistoryTrigger(e){'然後您可以測試'if(e.range.getSheet()。getName()==='Status'&& e.range.getA1Notation()=== 「G11」&& e.value =='OK'){'應測試所有3個要求(未經測試) –

+0

謝謝,@Karl_S。我做了一個編輯。 –

相關問題