insertRowsBefore()导致错误的方法:无法将(范围)转换为类

时间:2015-04-21 11:57:06

标签: google-apps-script google-sheets

我试图在谷歌电子表格中编写一个脚本,它将读取定义单元格中的一个范围,取其值和Insert范围所指示的行数,然后复制并粘贴特定范围也由一个单元格中的范围值给出。

显然复制和粘贴范围值有效,但insertRowsBefore的范围值无法转换范围值,任何想法为什么会发生这种情况?我收到此错误

  

无法将(范围)转换为类

这是脚本的样子:

function CopyActualvsWMS() {    
  var ss = SpreadsheetApp.getActiveSpreadsheet();    
  var sheet = ss.getSheetByName("ActualVsSystem");
  var value0 = sheet.getRange('T4');   
  var r1 = value0.getValue();    
  var insert =ss.getSheetByName("DataBase").insertRowBefore(r1);    
  var value1 = sheet.getRange('T3');    
  var cr1 = value1.getValue();    
  var source = ss.getRange(cr1);    
  source.copyTo(ss.getRange("DataBase!a2"), {contentsOnly: true});
}

1 个答案:

答案 0 :(得分:1)

问题来自这条线:

var insert =ss.getSheetByName("DataBase").insertRowBefore(r1);

您将变量名称r1放入参数中,但参数必须是数字(整数),而不是字符串或范围引用。变量r1不会计算为整数。它可能是一个字符串。

Google Documentation - insertRowBefore()