Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.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 范围高度不正确,为1,但应为344-尝试使用.setValues()将范围移到另一张图纸时_Javascript_Google Apps Script_Google Sheets_Setvalue - Fatal编程技术网

Javascript 范围高度不正确,为1,但应为344-尝试使用.setValues()将范围移到另一张图纸时

Javascript 范围高度不正确,为1,但应为344-尝试使用.setValues()将范围移到另一张图纸时,javascript,google-apps-script,google-sheets,setvalue,Javascript,Google Apps Script,Google Sheets,Setvalue,我试图循环遍历一系列数据,在第一列数据中查找某个值,然后将所有具有该值的行复制到另一个名为“Closed Requests”的工作表中 函数copyToClosed(){ var ss=SpreadsheetApp.getActiveSpreadsheet(); var sheet=ss.getSheetByName(“打开的请求”); var range=sheet.getActiveCell(); var lastrow=sheet.getLastRow(); var datarange=s

我试图循环遍历一系列数据,在第一列数据中查找某个值,然后将所有具有该值的行复制到另一个名为“Closed Requests”的工作表中

函数copyToClosed(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheetByName(“打开的请求”);
var range=sheet.getActiveCell();
var lastrow=sheet.getLastRow();
var datarange=sheet.getRange(10,2,lastrow-1,50).getValues();
var行=10;
var x=[];
var sheetNameToMoveTheRowTo=“已关闭的请求”
var targetSheet=ss.getSheetByName(sheetnametomovetherowt);

for(i=0;i错误在for循环中。请尝试以下操作:

function copyToClosed(){
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = ss.getSheetByName("Open Requests");
 var range = sheet.getActiveCell();
 var lastrow = sheet.getLastRow();
 var datarange = sheet.getRange(10,2,lastrow-1, 50).getValues();
 var row = 10;
 var x = [];
 var sheetNameToMoveTheRowTo = "Closed Requests"
 var targetSheet = ss.getSheetByName(sheetNameToMoveTheRowTo);
 for (i=0;i<datarange.length;i++) {
      if(datarange[i][0] == "CC") {
       x.push(datarange[i])
     }}  
 targetSheet.getRange(targetSheet.getLastRow()+1,2,x.length,x[0].length).setValues(x)
 }
函数copyToClosed(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheetByName(“打开的请求”);
var range=sheet.getActiveCell();
var lastrow=sheet.getLastRow();
var datarange=sheet.getRange(10,2,lastrow-1,50).getValues();
var行=10;
var x=[];
var sheetNameToMoveTheRowTo=“已关闭的请求”
var targetSheet=ss.getSheetByName(sheetnametomovetherowt);

对于(i=0;i另一个可能有效的选项是,您可以让它在OneEdit上运行,这样当值更改为CC时,它将自动移动行

    function onEdit(event) {
  // assumes source data in sheet named Active
  // target sheet of move to named Found 
  // test column with yes/no is col 13 or M
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = event.source.getActiveSheet();
  var r = event.source.getActiveRange();

  if(s.getName() == "Open Requests" && r.getColumn() == 1 && r.getValue() == 'CC') {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("Closed Requests");
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
    s.deleteRow(row);
  }

}

第一个i[0]不应该是datarange[i][0],第二个不应该是datarange.length和datarange[0]。length是x.length和x[0]。length,第三个不应该是在var targetRange=之前有一个结束}如果这对您有效,请单击答案左侧的复选标记批准答案。
    function onEdit(event) {
  // assumes source data in sheet named Active
  // target sheet of move to named Found 
  // test column with yes/no is col 13 or M
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = event.source.getActiveSheet();
  var r = event.source.getActiveRange();

  if(s.getName() == "Open Requests" && r.getColumn() == 1 && r.getValue() == 'CC') {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("Closed Requests");
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
    s.deleteRow(row);
  }

}