1
我有一個sppreadsheet,每行有很多行 - 第二列有狀態的單元格,例如:a010111101001和約30多個狀態。在腳本中,我有一些與狀態單元相同的函數。我只想要一個函數,它根據活動狀態單元調用所有其他函數。現在我只有功能,從活動cel獲取腳本的名稱,如果能幫助我,我將非常感激。下面是代碼,我有:在電子表格單元格中按名稱運行腳本
function nameoffunc() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('123')
var row = ss.getActiveCell().getRow();
var status = ss.getRange(row, 2).getValue();
//value from status - is the name of function
//I search way to do something like this:
//run.scrpt(status);
}
更新: 在狀態變量 - 值 「a00110000000000000」
function a00110000000000000(){
var ss1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('123')
var result = ss1.getRange("C35");
result.setValue(22)
}
function nameoffunc() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('123')
var row = ss.getActiveCell().getRow();
var status = ss.getRange(row, 2).getValue();
var a = {
"u2": function(){return status;},
"as": function(){return "eft";}
};
Logger.log(a["u2"]());
}
更新:謝謝@daniel! 運行由名字從電子表格單元格scripn的方法是:
function nameoffunc() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('123')
var row = ss.getActiveCell().getRow();
var status = ss.getRange(row, 2).getValue();
var a = {
"a00110000000000000": function(){
var ss1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('123')
var result = ss1.getRange("C35");
result.setValue(22)
},
"as": function(){return "eft";}
};
Logger.log(a[status]());
}
謝謝你的回答,但我不知道我的理解是否正確:我如何用「狀態」變量的名稱調用腳本?我嘗試寫狀態而不是abc,但沒有發生任何情況,名稱狀態下的funktion不起作用。請參閱更新,我做錯了什麼? – Davagaz
已找到答案!非常感謝,@丹尼爾!在更新中回答 – Davagaz