Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.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
Javascript 获取活动单元格的行和列不需要';行不通_Javascript_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 获取活动单元格的行和列不需要';行不通

Javascript 获取活动单元格的行和列不需要';行不通,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我在google电子表格中有一个脚本,它获取活动单元格,然后是活动单元格的行和列: function editedCellResponse() { var s = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getActiveCell(); var r = s.getRow(); // gets row of edited cell var c = s.getColumn(); // gets column of ed

我在google电子表格中有一个脚本,它获取活动单元格,然后是活动单元格的行和列:

function editedCellResponse() {
  var s = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getActiveCell();
  var r = s.getRow(); // gets row of edited cell
  var c = s.getColumn(); // gets column of edited cell
  ... script then goes on doing what ever

}
此脚本还有一个onEdit触发器,因此它在电子表格的每次编辑时都会被触发。但是,要么getActiveCell不工作,要么getRow和getColumn不工作,因为(行、列)结果始终是(1,1),而与活动单元格无关。有趣的是,当我第一次编写脚本时,这一切都起了作用,我从未改变过任何东西,但现在突然什么都不起作用,因为脚本似乎读取了活动单元格或行和列的错误

有什么想法可能是错误的吗?

试试这个:

function onEdit(e){ 
  var r = e.range.getRow(); 
  var c = e.range.getColumn();
  Logger.log('%s,%s',r,c);
}

如果函数在
onEdit
触发器中运行,则没有活动单元格,这就是为什么它总是返回
1,1
。您需要访问onEdit事件中的范围。有趣的是,at也可以在没有onEdit函数事件的情况下工作,只是不总是这样。例如,当我写这篇文章时,代码不起作用。第二天,我再次运行了它,代码没有改变,并且工作正常。如果问题仍然存在,我将最终更改代码以包含事件。我试图避免这种情况,只是为了便于调试。有趣的是,at也可以在没有onEdit函数事件的情况下工作,只是不总是这样。例如,当我写这篇文章时,代码不起作用。第二天,我再次运行了它,代码没有改变,并且运行良好。您可以使用类似于on3dit(e)的东西重命名该函数,并从测试函数中的另一个函数(如teston3dit())调用它。您可以创建var e={range:v},并从一个向v提供不同范围值的循环中调用它。通常我不会这样做,因为最终它必须与触发器事件一起工作,而且只需在电子表格上进行编辑就更容易了。顺便问一下,这张表是表格回复表吗?如果是您,我需要使用锁定服务来阻止onFormSubmits与您的OneEdit事件交互。