1

是否有一种 API 方法可以完成与人们期望调用的方法相同的sheet.getRange().getValuesOrFormulas()功能?那是(伪代码):

for each cell in the range
  if(cell.getFormula() != '')
    cell.getFormula();
  else cell.getValue()

如果没有,是否有人愿意分享自定义功能?

4

1 回答 1

5

不,没有办法。

我不知道你会用这个做什么,也不知道它有什么用(因为没有方法可以立即设置它)。无论如何,这里是用公式和范围值填充数组的代码。

function valuesAndFormulas() {
  var range = SpreadsheetApp.getActiveSheet().getDataRange();
  var formulas = range.getFormulas();
  var values = range.getValues();
  var merge = new Array(formulas.length);
  for( var i in formulas ) {
    merge[i] = new Array(formulas[i].length);
    for( var j in formulas[i] )
      merge[i][j] = formulas[i][j] !== '' ? formulas[i][j] : values[i][j];
  }
  //now do something with it
  Logger.log(merge);
}
于 2013-03-28T17:58:02.137 回答