Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 从电子表格单元格按名称运行scripn_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 从电子表格单元格按名称运行scripn

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

我有一个包含许多行的sppreadsheet,在每一行中,单元格的状态在第二列中,例如:a010111101001和大约30多个状态。在脚本中,我将函数命名为与状态单元相同的函数。我只需要一个函数,它根据活动状态单元调用所有其他函数。现在我只有一个函数,可以从ActiveCEL获取脚本的名称,如果您能帮助我,我将非常感激。以下是我的代码:

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"]());