只有一个用户遇到这种类型的错误:selection.getCurrentCell 不是函数

问题描述 投票:0回答:1

此代码已使用多年,没有任何问题。该代码是通过单击电子表格中的小图像来触发的。 几天后,一位用户遇到了这种“类型错误:selection.getCurrentCell 不是函数”。对于其他用户,一切都像以前一样工作。 在我看来,这不是一个编程问题,而是一个授权问题或其他问题?遇到问题的用户并不是使用公司管理的设备,而是其他人使用的设备。 有什么建议吗?

/** @OnlyCurrentDoc */
function Voeg1RijToe() {
  var date = new Date();
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = ss.getSheetByName('Schakel');
  var r = s.getRange('B:B');
  var v = r.getValues();
  for(var i=v.length-1;i>=0;i--)
    if(v[0,i]=='blanco'){
var range = s.getRange('A1');
range.activate();
var selection = s.getSelection();
// Current cell: A1
var currentCell = selection.getCurrentCell();
      /* ---- Zoek in de kolom B:B naar blanco ------ */
      /* ---- Voeg 1 rij erONDER toe en vul de datum van vandaag in ------ */
      s.getCurrentCell().offset(i,1).activate();
      s.insertRowsAfter(s.getActiveRange().getRow(), 1);
      /* --hieronder was offset(0,0,1)-- */
      s.getActiveRange().offset(1, 0, 1, s.getActiveRange().getNumColumns()).activate();
      s.getCurrentCell().offset(0, -1).activate();
      s.getCurrentCell().setValue(date);
      s.getCurrentCell().activate();
     /* ------Ga 1 rij naar boven en selecteer cellen met formules en copieer in de nieuwe rij ---------- */
       s.getCurrentCell().offset(-1, 2, 1, 3).activate();
  var destinationRange = s.getActiveRange().offset(0, 0, 2);
  s.getActiveRange().autoFill(destinationRange, SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES);
  s.getCurrentCell().offset(0, 5).activate();
  destinationRange = s.getActiveRange().offset(0, 0, 2);
  s.getActiveRange().autoFill(destinationRange, SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES);
  s.getCurrentCell().offset(0, 7, 1, 3).activate();
  destinationRange = s.getActiveRange().offset(0, 0, 2);
  s.getActiveRange().autoFill(destinationRange, SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES);
  s.getCurrentCell().offset(1, -14, 1, 1).activate(); 
      /* offset(rowOffset, columnOffset, numRows, numColumns) */
     /* ---------------- */ 
      /* s.getCurrentCell().activate(); */
    };
};

/* Kris Paeschuyzen: juni 2019 */

在用户的 chromebook 设备上,我删除了 Google 表格页面的 cookie 和浏览历史记录,并运行了操作系统更新。 当然,我检查了代码的更改历史记录,但什么也没发生。我检查了用户对电子表格的访问权限(不是代码,因为我找不到......)

用户报告此问题较早发生过,但只是偶尔出现......

错误消息如下所示: error message

The error log for the respective user:

and the debugger info

从我自己的帐户来看,一切看起来都很正常: error log from my own account is succesful

google-apps-script proxy proxy-object
1个回答
0
投票

删除未使用的行

在测试您的代码时,我注意到

line 14
呈灰色,表明它尚未声明。

var currentCell = selection.getCurrentCell();

同样,当我尝试注释掉第12行时,也显示它没有声明。

var selection = s.getSelection();

Sample 1


我最初遇到了您的代码的问题,它一开始不起作用。然而,经过多次尝试后,它最终开始按预期响应。您可以在 Issue Tracker 中报告此问题,如果您计划将来使用该代码,

line 14
有一个需要解决的错误。

© www.soinside.com 2019 - 2024. All rights reserved.