Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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
Google apps script CopyValueStorRange错误_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script CopyValueStorRange错误

Google apps script CopyValueStorRange错误,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我试图获取一个表单输入,它有一个日期加上一个字段,指示范围内的天数。在表格中输入的日期为mm/dd/yyyy,天数为1-7之间的数字 我将表格电子表格中的新行复制N次,N是范围内的天数 然后,我尝试通过在字段中添加一天来修改每个重复记录中的一个字段,即YYYY-MM-DD格式的日期。当我试图覆盖我得到的一个字段时: TypeError:在对象2015-11-05中找不到函数CopyValueStorRange。(第46行,文件“”) 我正在使用的代码是我通过本论坛找到的经过一些修改的零碎代码:

我试图获取一个表单输入,它有一个日期加上一个字段,指示范围内的天数。在表格中输入的日期为
mm/dd/yyyy
,天数为1-7之间的数字

我将表格电子表格中的新行复制N次,N是范围内的天数

然后,我尝试通过在字段中添加一天来修改每个重复记录中的一个字段,即YYYY-MM-DD格式的日期。当我试图覆盖我得到的一个字段时:

TypeError:在对象2015-11-05中找不到函数CopyValueStorRange。(第46行,文件“”)

我正在使用的代码是我通过本论坛找到的经过一些修改的零碎代码:

function onSubmit() {
// Sheet to which form submits
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("FormInput");
  var lastRow = sheet.getLastRow();

// Determine the from date
  var date = (sheet.getRange(lastRow, 4).getValue()); 

// READ THE NUMBER OF NEW ROWS FROM THE DESIGNATED COLUMN IN "FormInput"
  var N = sheet.getRange(lastRow, 6).getValue();

// Sheet to which we will write
  var sheetRec = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("UpdatedFormInput");
  var lastColumn = sheetRec.getLastColumn();
  var lastRowT = sheetRec.getLastRow();
  var lastRowB = sheetRec.getLastRow();

// Create N new Rows by copying in the template row N times
  var Template = sheetRec.getRange(2, 1, 1, lastColumn);
  for (j = 1; j <=N; j++) {
      Template.copyTo(sheetRec.getRange(lastRowT + j, 1));
  }

  var Val1 = sheet.getRange(lastRow, 1);
  var Val2 = sheet.getRange(lastRow, 2);
  var Val3 = sheet.getRange(lastRow, 3);
  var Val4 = sheet.getRange(lastRow, 4);
  var Val5 = sheet.getRange(lastRow, 5);

  Val1.copyValuesToRange(sheetRec, 1, 1, lastRowT + 1, lastRowT + N);
  Val2.copyValuesToRange(sheetRec, 2, 2, lastRowT + 1, lastRowT + N);
  Val3.copyValuesToRange(sheetRec, 3, 3, lastRowT + 1, lastRowT + N);
  Val4.copyValuesToRange(sheetRec, 4, 4, lastRowT + 1, lastRowT + N);
  Val5.copyValuesToRange(sheetRec, 5, 5, lastRowT + 1, lastRowT + N);

// modify the date field in each of the new rows starting from the second new row 
  var startrowT = lastRowT + 2;
  var endrowT = lastRowT + N;

// Copy new data values into the rows
  for (j = 1; j <N; j++) {
     var result = new Date(date.getTime()+j*(24*3600*1000));
     Val4 = Utilities.formatDate(new Date(result), "GMT-5", "yyyy-MM-dd");
// I am trying to copy my new date, (current date + 1), into a cell in multiple rows, column 4
// the utility is returning a string and the receiving field is a date
// getting error "TypeError: Cannot find function copyValuesToRange in object 2015-11-05.(line 46,file"")
     Val4.copyValuesToRange(sheetRec, 4, 4, startrowT, 1);
// getting error "TypeError: Cannot find function copyValuesToRange in object 2015-11-05.(line 46,file"")
     startrowT = startrowT + 1;
  }
}
函数onSubmit(){
//表单提交到的工作表
var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“FormInput”);
var lastRow=sheet.getLastRow();
//确定起始日期
var date=(sheet.getRange(lastRow,4.getValue());
//从“FormInput”中的指定列中读取新行数
var N=sheet.getRange(lastRow,6.getValue();
//我们要写的那张纸
var sheetRec=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“UpdatedFormInput”);
var lastColumn=sheetRec.getLastColumn();
var lastRowT=sheetRec.getLastRow();
var lastRowB=sheetRec.getLastRow();
//通过在模板行中复制N次来创建N个新行
var Template=sheetRec.getRange(2,1,1,lastColumn);
对于(j=1;j,如前所述,可以使用函数.getRange().setValues()代替.copyValueStorRange()

由于我不完全理解你正在拉的范围,我将向你展示当我遇到同样的问题时我最终做了什么。 我试图将标题从一张图纸复制到另一张图纸:

     // First define the sheet that you're pulling data from ("dataSheet")

     var file = SpreadsheetApp.getActiveSpreadsheet();
     var dataSheet = file.getSheetByName("name");

     // Then define the new sheet that you're pulling data to,
     // in my case I look to see if the secondary sheet ("updateSheet") 
     // already exists, otherwise I insert a new sheet, 
     // and define its name.

     var updateSheet = file.getSheetByName("Update Data from " + name);

     var updateSheet = updateSheet || file.insertSheet();
     updateSheet.setName("Update Data from " + name);

     // Then I was looking to copy the headers of my first sheet
     // and copy those to my second sheet.

     var shortHeaders = dataSheet.getRange('A1:M1');
     var headersValues = shortHeaders.getValues();

     updateSheet.getRange("A1:M1").setValues(headersValues);
希望这也能转化为您正在尝试做的事情!如果没有,请询问我,也许通过一些公开讨论,我们可以一起找出如何将其应用于您的数据。

如前所述,您可以使用.copyValueStorRange()函数代替.getRange().setValues()

由于我不完全理解你正在拉的范围,我将向你展示当我遇到同样的问题时我最终做了什么。 我试图将标题从一张图纸复制到另一张图纸:

     // First define the sheet that you're pulling data from ("dataSheet")

     var file = SpreadsheetApp.getActiveSpreadsheet();
     var dataSheet = file.getSheetByName("name");

     // Then define the new sheet that you're pulling data to,
     // in my case I look to see if the secondary sheet ("updateSheet") 
     // already exists, otherwise I insert a new sheet, 
     // and define its name.

     var updateSheet = file.getSheetByName("Update Data from " + name);

     var updateSheet = updateSheet || file.insertSheet();
     updateSheet.setName("Update Data from " + name);

     // Then I was looking to copy the headers of my first sheet
     // and copy those to my second sheet.

     var shortHeaders = dataSheet.getRange('A1:M1');
     var headersValues = shortHeaders.getValues();

     updateSheet.getRange("A1:M1").setValues(headersValues);

希望这也能转化为您想要做的事情!如果没有,请询问我,也许通过一些公开讨论,我们可以一起找出如何将其应用于您的数据。

您正在用第43行的日期对象覆盖Val4。@RobinGertenbach一个字符串,实际上是
Utilities.formatDate()的输出
。但无论如何,Val4不是一个范围对象。有没有想过如何修复它?您在第43行用一个日期对象覆盖Val4。@RobinGertenbach实际上是一个字符串-Utilities.formatDate()的输出。
。但无论如何,Val4不是一个范围对象。有没有想过如何修复它?