Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果x推到另一个电子表格,则迭代行_Javascript_Google Apps Script - Fatal编程技术网

Javascript 如果x推到另一个电子表格,则迭代行

Javascript 如果x推到另一个电子表格,则迭代行,javascript,google-apps-script,Javascript,Google Apps Script,我的脚本大部分工作正常-除了被推送的数据实际上显示“范围”之外,我必须缺少一些东西-您不能跨范围设置值吗 函数up4Grabs(){ var sheet1=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('sheet1'); var sheet2=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Final'); var destsheet=SpreadsheetApp.open

我的脚本大部分工作正常-除了被推送的数据实际上显示“范围”之外,我必须缺少一些东西-您不能跨范围设置值吗

函数up4Grabs(){
var sheet1=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('sheet1');
var sheet2=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Final');
var destsheet=SpreadsheetApp.openById(“MYID在这里”).getSheetByName(“Items”);
var destLastRow=destsheet.getLastRow();
var destRange=destsheet.getRange(1,9,destLastRow);
var dataLastRow=sheet1.getLastRow();
var dataRange=sheet1.getRange(1,9,dataLastRow);
var data=dataRange.getValues();
对于(变量i=0;i0){
var targetLastRow=destsheet.getLastRow()+1;
var测试=destsheet.getRange(1,9,TargetStarRow);
表1.获取值(测试).设置值(表1.获取范围(i+1,1,1,9))
}
}
}
问题:
setValue()
设置“范围”而不是实际值


原因: 首先,将范围而不是值传递给
setValue()


解决方案:
函数up4Grabs(){
var sheet1=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('sheet1');
var sheet2=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Final');
var destsheet=SpreadsheetApp.openById(“我的ID在这里”).getSheetByName(“项目”);
var destLastRow=destsheet.getLastRow();
var destRange=destsheet.getRange(1,9,destLastRow);
var dataLastRow=sheet1.getLastRow();
var dataRange=sheet1.getRange(1,9,dataLastRow);
var data=dataRange.getValues();
对于(变量i=0;i0){
var targetLastRow=destsheet.getLastRow()+1;
var values=sheet1.getRange(i+1,1,1,9).getValues();
destsheet.getRange(1,9,value.length,9).setValues(value);
}
}
}
由于要设置整个范围的值,因此需要使用
setValues()
而不是
setValue()
,注意:复数而不是单数。我还将
getValues()
添加到您已经提取的范围中,这将返回范围内的值数组,然后可以将该数组传递到
setValues()

问题:
setValue()
设置“范围”而不是实际值


原因: 首先,将范围而不是值传递给
setValue()


解决方案:
函数up4Grabs(){
var sheet1=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('sheet1');
var sheet2=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Final');
var destsheet=SpreadsheetApp.openById(“我的ID在这里”).getSheetByName(“项目”);
var destLastRow=destsheet.getLastRow();
var destRange=destsheet.getRange(1,9,destLastRow);
var dataLastRow=sheet1.getLastRow();
var dataRange=sheet1.getRange(1,9,dataLastRow);
var data=dataRange.getValues();
对于(变量i=0;i0){
var targetLastRow=destsheet.getLastRow()+1;
var values=sheet1.getRange(i+1,1,1,9).getValues();
destsheet.getRange(1,9,value.length,9).setValues(value);
}
}
}

由于要设置整个范围的值,因此需要使用
setValues()
而不是
setValue()
,注意:复数而不是单数。我还将
getValues()
添加到您已经拉取的范围中,这将返回范围内的值数组,然后可以传递到
setValues()

尝试使用
setValues()
注意:复数,并确保在
setValues()
范围内使用
getValues()
。此时,您正在将一个范围传递给
setValue()
,这就是它只是设置“范围”的原因。我收到TypeError:在对象表中找不到函数GetValue。-尝试您的建议更新我的代码我将发布代码示例作为答案。尝试使用
setValues()
注意:复数,并确保在
setValues()
范围内使用
getValues()
。此时,您正在将一个范围传递给
setValue()
,这就是它只是设置“范围”的原因。我收到TypeError:在对象表中找不到函数GetValue。-尝试您的建议更新我的代码我将发布代码示例作为答案。数据中的行数与范围中的行数不匹配。数据有1,但范围有5。(第91行,文件“Code”)我对代码进行了更改,现在在一个单独的变量中定义了值,然后使用values.length,根据值数组的大小计算范围的大小,请重试。关于列,现在仍然看到此错误-数据中的列数与范围中的列数不匹配。数据有9个,但范围有1个。(第94行,文件“代码”)您在回答中使用的是最新版本吗?该范围在提供的答案中有9列。这是一个很容易犯的错误,而不是将值传递给
setValues()
您传递的是一个范围,这就是为什么它设置的是“范围”,而不是您期望的值。数据中的行数与范围中的行数不匹配。数据有1,但范围有5。(第91行,文件“Code”)我对代码进行了更改,现在在一个单独的变量中定义了值,然后使用values.length,根据值数组的大小计算范围的大小,请重试。关于列,现在仍然看到此错误-数据中的列数与范围中的列数不匹配。数据有9个,但范围有1个。(第94行,文件“代码”)您在回答中使用的是最新版本吗?该范围在提供的答案中有9列。这是一个很容易犯的错误,而不是将值传递给
setValues()<
function up4Grabs() {
  var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
  var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Final');
  var destsheet = SpreadsheetApp.openById("MY ID GOES HERE").getSheetByName('Items');
  var destLastRow = destsheet.getLastRow();
  var destRange = destsheet.getRange(1,9,destLastRow);

  var dataLastRow = sheet1.getLastRow();
  var dataRange = sheet1.getRange(1,9,dataLastRow);
  var data = dataRange.getValues();

  for(var i = 0; i < data.length; i++) {
    if (data[i] > 0) { 
      var targetLastRow = destsheet.getLastRow() + 1;
      var values = sheet1.getRange(i+1,1,1,9).getValues();
      destsheet.getRange(1,9,values.length,9).setValues(values);
    }
  }
}