我有一個函式呼叫settrigger,基本上這是一個將一直運行直到滿足特定條件的函式。但是,我想添加一個可以settrigger手動Cancel停止函式執行的函式,而不是單擊以停止正在運行的腳本。我可以知道這個函式應該是什么樣子嗎?感謝你的幫助!
這是我的腳本:
function settrigger() {
var ss = SpreadsheetApp.getActiveSpreadsheet()
var y = 1;
var z = 1
while ( y != 100000 ){
var x = ss.getActiveSheet().getRange('A15').getValue();
x=x 1;
ss.getRange('A15').setValue(x);
y=y 1;
var toggle = ss.getRange('A1')
if (x%2==0){
toggle.setBackground("RED");
} else if (x%2!=0) {
toggle.setBackground("WHITE");
}
}
}
停止功能
function stopfunc() {
PropertiesService.getScriptProperties().setProperty("stop", "stop");
var ss = SpreadsheetApp.getActiveSpreadsheet()
var toggle = ss.getRange('A1')
toggle.setBackground("WHITE")
}
uj5u.com熱心網友回復:
那么,下面的修改如何呢?
修改后的腳本:
function settrigger() {
var ss = SpreadsheetApp.getActiveSpreadsheet()
var y = 1;
var z = 1
var p = PropertiesService.getScriptProperties();
while (y != 100000 && p.getProperty("stop") == null){
var x = ss.getActiveSheet().getRange('A15').getValue();
x=x 1;
ss.getRange('A15').setValue(x);
y=y 1;
var toggle = ss.getRange('A1')
if (x%2==0){
toggle.setBackground("RED");
} else if (x%2!=0) {
toggle.setBackground("WHITE");
}
}
p.deleteProperty("stop");
}
// When you want to stop the function of `settrigger`, please run this.
function stopfunc() {
PropertiesService.getScriptProperties().setProperty("stop", "stop");
}
- 在這種情況下,在
settrigger運行了 的函式后,運行時stopfunc,stop創建了 PropertiesService的鍵。由此,y != 100000 && p.getProperty("stop") == null是false。這樣,回圈就停止了。
參考:
- 物業服務
添加:
從您評論中的其他問題如下,
我嘗試添加幾行代碼以再次將背景更改回白色,但似乎效果不佳,有時仍然保持紅色,這取決于運氣。
在這種情況下,您的問題的原因settrigger()是該函式stopfunc()在運行后停止。因此,請按如下方式修改上述腳本。
修改后的腳本:
function settrigger() {
var ss = SpreadsheetApp.getActiveSpreadsheet()
var y = 1;
var z = 1
var p = PropertiesService.getScriptProperties();
while (y != 100000 && p.getProperty("stop") == null){
var x = ss.getActiveSheet().getRange('A15').getValue();
x=x 1;
ss.getRange('A15').setValue(x);
y=y 1;
var toggle = ss.getRange('A1')
if (x%2==0){
toggle.setBackground("RED");
} else if (x%2!=0) {
toggle.setBackground("WHITE");
}
}
p.deleteProperty("stop");
ss.getRange('A1').setBackground("WHITE"); // Added
}
// When you want to stop the function of `settrigger`, please run this.
function stopfunc() {
PropertiesService.getScriptProperties().setProperty("stop", "stop");
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/350468.html
