当使用setFormulas我得到错误无法找到函数错误“对象函数getFontColor(){/ * * /}。”

时间:2015-05-23 11:06:28

标签: google-apps-script

我正在尝试创建一个脚本,将公式缩小到表格的长度(在我研究的其他SO帖子的背面缝合在一起):

var originRange = ss.getSheetByName('data_prep').getRange('C6:I6');
var formulas = originRange.getFormulas();
var target = ss.getSheetByName('data_prep').getRange('C7:I');

  for(i in target) {
    target[i].setFormulas(formulas);
  }

当我运行此功能时,我得到:

TypeError: Cannot find function setFormulas in object function getFontColor() {/* */}.Dismiss

我希望/期望的是C6中的所有公式:I6被复制到从表格开始沿着C7开始的每一行。

该功能一次只能用于一行。因此,如果我将目标设置为C7:I7并摆脱for循环就可以了。

  1. 为什么我得到这个getFont错误?
  2. 如何让我的脚本在C6:I6中复制公式?
  3. 作为2的替代方法,如果A列中有数据,我怎样才能将我的脚本复制下来?

1 个答案:

答案 0 :(得分:0)

也许尝试这样的事情:

var ss= SpreadsheetApp.getActiveSpreadsheet();
var dataPrepSheet = ss.getSheetByName('data_prep')
var originRange = dataPrepSheet.getRange('C6:I6');

var everyRow = dataPrepSheet.getMaxRows().toString();
var target = dataPrepSheet.getRange('C7:I' + everyRow);

originRange.copyTo(target);
SpreadsheetApp.flush();

使用getMaxRows()方法获取电子表格中的每一行,无论是否有内容。返回一个整数,因此将其转换为字符串,然后使用文本公式创建A1表示法。

然后,不要设置公式,请使用copyTo()