Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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 谷歌工作表-跨多个工作表使用脚本_Google Apps Script_Google Sheets_Google Apps Script Editor - Fatal编程技术网

Google apps script 谷歌工作表-跨多个工作表使用脚本

Google apps script 谷歌工作表-跨多个工作表使用脚本,google-apps-script,google-sheets,google-apps-script-editor,Google Apps Script,Google Sheets,Google Apps Script Editor,我无法使此脚本跨工作表中的其他选项卡/工作表工作。它适用于当前工作表,但我需要在工作表中的其他工作表中复制它 function onEdit(e) { if(e.range.columnStart != 5 || e.value != "TRUE") return; var date = new Date(); var t = date.getTime(); var r = e.range.getA1Notation(); PropertiesService.getScrip

我无法使此脚本跨工作表中的其他选项卡/工作表工作。它适用于当前工作表,但我需要在工作表中的其他工作表中复制它

function onEdit(e) {
  if(e.range.columnStart != 5 || e.value != "TRUE") return;
  var date = new Date();
  var t = date.getTime();
  var r = e.range.getA1Notation();
  PropertiesService.getScriptProperties().setProperty(t,r);
}

function unCheck() {
  var d = new Date();
  var props = PropertiesService.getScriptProperties();
  var day = 1000; //milliseconds for 1 full day 86400000
  var keys = props.getKeys();
  for(var i in keys){
 Script    var t = parseInt(keys[i]);
    if(d.getTime() - t > day) {
      SpreadsheetApp.getActiveSheet().getRange(props.getProperty(keys[i])).setValue("FALSE");
      props.deleteProperty(keys[i]);
    }
  }
}
试试下面的代码

function onEdit(e) {
  if (e.range.columnStart != 5 || e.value != 'TRUE') return;
  var date = new Date();
  var t = date.getTime();
  var r = e.range.getA1Notation();
  var n = e.range.getSheet().getName(); // get sheet name
  PropertiesService.getScriptProperties().setProperty(t, r + '__|__' + n); // include sheet name
}

function unCheck() {
  var d = new Date();
  var props = PropertiesService.getScriptProperties();
  var day = 1000; //milliseconds for 1 full day 86400000
  var keys = props.getKeys();
  for (var i in keys) {
    var t = parseInt(keys[i]);
    if (d.getTime() - t > day) {
      var values = props
        .getProperty(keys[i])
        .toString()
        .split('__|__'); // split to get range and sheet name
      var a1 = values[0];
      var n = values[1];
      SpreadsheetApp.getSheetByName(n)
        .getRange(a1)
        .setValue('FALSE');
      props.deleteProperty(keys[i]);
    }
  }
}

onEdit
适用于当前工作表。任何编辑都会保存到属性服务中,但A1范围所属的图纸不会保存。因此,如果没有这些信息,
取消选中
就不能盲目地编辑除当前工作表之外的其他工作表。您需要更改这两个功能。感谢您迄今为止的帮助。我是一个完全的新手,所以请容忍我。我试过运行这个,但仍然有一些问题。onEdit函数中的工作表名称是否像上面一样包含撇号?换言之,“第1张”就是这样吗?感觉好像我在制造语法错误,这就是为什么我要问后续问题。引号用于表示字符串值是一个值,所以我们将它放在引号中,如
“\uuuu124;_uu124;”
。就像代码中的真与假一样
getName()
函数按原样获取工作表名称。如果我们真的需要把这个值传递给某个东西,我们会在它周围加引号。变量周围不需要引号。我没有在任何地方使用工作表名称。您的工作表名称中有引号吗?