我创建了一个Google电子表格模板,其中包含一个名为" CollegeTracker"的工作表。用户可以右键单击选项卡,然后"复制到"他们的工作簿。但是,我在Apps脚本中的onEdit功能无效。
function onEdit()
{
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "CollegeTracker" )
{ //checks that we're on the correct sheet
var r = s.getActiveCell();
var range = s.getRange(r.getRow(),r.getColumn());
var data = range.getValue();
var schoolRange = s.getRange(r.getRow(),1);
var schoolData = schoolRange.getValue();
var deadlineRange = s.getRange(r.getRow(),3);
var deadlineData = deadlineRange.getValue();
Logger.log(r.getRow());
Logger.log(r.getColumn());
Logger.log(data);
这是我的代码的开头。我添加了几个记录器来查看发生了什么。我在单元格A2中输入了一些内容,但记录器显示了第1行第1列或A1。我尝试了几个其他单元格,但它总是返回A1作为活动单元格。我在单元格A6和E7中重复此操作,但记录器始终返回A1。但是,这在模板中正确读取。我想知道它是否是一个权限问题,我必须允许getActiveCell()工作。如果是这种情况,我该怎么做呢?我从我的模板中复制并粘贴代码并粘贴到脚本编辑器中,它工作正常。我当然可以制作我的剧本的多个副本,但如果我弄清楚这一点,我认为一个副本可以适用于多个工作表应该没问题。你知道阻止getActiveCell()工作的是什么吗?如果它是权限,我该如何解决这个问题呢?
更新: 我一直在继续我的测试并意识到getActiveSheet()仍然认为我的模板表是活动的,即使我正在处理新工作表。我想知道是否有办法确定我工作的工作表,无论我在哪个工作簿。
谢谢!
仪射线