【发布时间】:2016-01-22 19:12:47
【问题描述】:
我有一个电子表格,每一行都有很多行 - 第二列的状态单元格,例如: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! 从电子表格单元格中按名称运行脚本的方法是:
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]());
}
【问题讨论】:
标签: google-apps-script google-sheets