【问题标题】:TypeError: Cannot read property 'getFormula' of null (line 3, file "Code") - URL FORMULATypeError:无法读取 null 的属性“getFormula”(第 3 行,文件“代码”)- URL FORMULA
【发布时间】:2020-02-25 21:28:34
【问题描述】:

我正在尝试通过 Google 脚本编辑器添加自定义公式,但标题中不断出现错误消息。下面是字符串。

TypeError:无法读取 null 的属性“getFormula”(第 3 行,文件“代码”)- URL FORMULA

function linkURL(reference) {
var sheet = SpreadsheetApp.getActiveSheet();
var formula = SpreadsheetApp.getActiveRange().getFormula()
var args = formula.match(/=\w+\((.*)\)/i);
try {
  var range = sheet.getRange(args[1]);
}
catch(e) {
throw new Error(args[1] + ' is not a valid range');
}
var formulas = range.getFormulas();
var output = [];
for (var i = 0; i < formulas.length; i++) {
  var row = [];
  for (var j = 0; j < formulas[0].length; j++) {
    var url = formulas[i][j].match(/=hyperlink\("([^"]+)"/i);
  row.push(url ? url[1] : '');
}
output.push(row);
}
return output

}

【问题讨论】:

  • Guidelines for Custom Functions。也许自定义函数无法使用该 get。
  • 是的,但是会导致错误。不知道去哪里找。
  • 你怎么知道?
  • 这里是我获得原始脚本的地方:stackoverflow.com/questions/28474308/… 另外 - 感谢帮助!
  • 这不是一个公认的答案,而且是一个相当新的用户,所以他们可能错了。提问者无法让它工作。

标签: google-apps-script google-sheets formula


【解决方案1】:

这似乎有效:

function getLink() {
  const ss=SpreadsheetApp.getActive();
  const sh=ss.getActiveSheet();
  let v=sh.getRange('You specify range').getFormula();
  v=v.match(/([^"]+)/g);
  Logger.log(v[1]);
}

这可能不适用于较旧且速度较慢的 Apps 脚本版本。通过启用 V8 尝试使用 ES6 版本

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-30
    相关资源
    最近更新 更多