Google apps script 从电子表格单元格按名称运行scripn
我有一个包含许多行的sppreadsheet,在每一行中,单元格的状态在第二列中,例如:a010111101001和大约30多个状态。在脚本中,我将函数命名为与状态单元相同的函数。我只需要一个函数,它根据活动状态单元调用所有其他函数。现在我只有一个函数,可以从ActiveCEL获取脚本的名称,如果您能帮助我,我将非常感激。以下是我的代码:Google apps script 从电子表格单元格按名称运行scripn,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我有一个包含许多行的sppreadsheet,在每一行中,单元格的状态在第二列中,例如:a010111101001和大约30多个状态。在脚本中,我将函数命名为与状态单元相同的函数。我只需要一个函数,它根据活动状态单元调用所有其他函数。现在我只有一个函数,可以从ActiveCEL获取脚本的名称,如果您能帮助我,我将非常感激。以下是我的代码: function nameoffunc() { var ss = SpreadsheetApp.getActiveSpreadsheet().getShe
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);
}
更新:
状态变量中-值“A001100000000000”
更新:谢谢@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]());
}
你能做的是:
- 在一个单元格中,创建所有函数名的
- 创建一个函数来处理值更改
- 在事件处理程序中,检查是否是具有下拉列表的单元格
- 检查值并执行适当的函数
开关即可轻松调用函数:
要定义函数,请执行以下操作:
var a = {
"u2": function(){return "abc";},
"u1": function(){return "eft";}
};
按名称调用函数(示例):
谢谢您的回答,但我不确定我是否理解正确:如何从“status”变量调用名为的脚本?我试着写status而不是abc,但是什么都没有发生,status的名字下的funktion也不起作用。。请查看更新,我做错了什么?
var a = {
"u2": function(){return "abc";},
"u1": function(){return "eft";}
};
Logger.log(a["u2"]());