2017-03-01 20 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。我做了一个编辑。 –

相关问题