1

我想创建一个自定义函数,即 myrange.ckeck_if_included(row,col,numrow,numcol),它返回一个布尔值,表示输入中给出的范围是否包含在 myrange 中。是否可以在类范围内创建此功能?以及如何将我的函数引用到 myrange?谢谢弗兰科

4

2 回答 2

2

您始终可以使用代理对象来执行此操作。这是一个通用的代理制作实用程序:

function proxy(obj) {
  var x = {};
  Object.keys(obj).map(function(k) { x[k] =
      function() { return obj[k].apply(obj, [].slice.call(arguments, 0)); }})
  return x;
}

在你的情况下,你可以这样做

r=proxy(SpreadsheetApp.openById("...").getSheetByName("Sheet1").getActiveRange());
r.myFunction=function () { ... }

更一般地说,您甚至可以用代理替换顶级对象:

GmailApp = proxy(GmailApp);
GmailApp.myFunction = ...
于 2013-01-20T14:12:18.337 回答
0

So you want to extend an Object/Class of the Google-Services? This does not work, you get an exception "Object does not allow properties to be added or changed" if you try like this:

r=SpreadsheetApp.openById("...").getSheetByName("Sheet1").getActiveRange();
r.myFunction=function () { ... }
于 2013-01-20T12:51:23.740 回答