在Google表格的CopyRow代码中找不到错误

时间:2019-05-13 15:38:02

标签: google-apps-script google-sheets copy cell google-sheets-macros

我正在寻找一个代码,用于复制行的4个单元格,该行是我在写入的最后一行中从同一电子表格的另一工作表的一个工作表中选择了该单元格的地方。代码是这样的:

function CopiarFila() {

//declaration of sheets

var ss = SpreadsheetApp.openById("ID");

var sheet = ss.getSheetByName("FORD 2019");

var sheetTo = ss.getSheetByName("FORD 2019-F");

//declaration of variables

var row = sheet.getActiveCell().getRow();

var range1 = sheet.getRange("B"+row+":B"+row).getValues();
var range2 = sheet.getRange("C"+row+":C"+row).getValues();
var range3 = sheet.getRange("F"+row+":F"+row).getValues();
var range4 = sheet.getRange("I"+row+":I"+row).getValues();


//declaration of the last row from the new sheet

var ultimaFila = sheetTo.getLastRow();

//adding a row after the last one

sheetTo.insertRowsAfter(ultimaFila, 1); 

//copying values to the last row

sheetTo.getRange("B"+ultimaFila+":B"+ultimaFila).setValues(range1);
sheetTo.getRange("D"+ultimaFila+":D"+ultimaFila).setValues(range2);
sheetTo.getRange("C"+ultimaFila+":C"+ultimaFila).setValues(range3);
sheetTo.getRange("H"+ultimaFila+":H"+ultimaFila).setValues(range4);`



}

正如我在运行代码时所看到的,创建了该行,因此问题并非出自以下命令:Sheet,SheetTo和ultimaFila。我是否正确使用了命令'.getValues('?

我被困住了,我找不到解决它的方法。谢谢您的帮助!

1 个答案:

答案 0 :(得分:0)

如果您不介意空白列,则有一种更简单的方法

var ss1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("FORD 2019");
var ss2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("FORD 2019-F");

ss1.getRange("B:B").copyTo(ss2.getRange("B:B"));
ss1.getRange("C:C").copyTo(ss2.getRange("D:D"));
ss1.getRange("F:F").copyTo(ss2.getRange("C:C"));
ss1.getRange("I:I").copyTo(ss2.getRange("H:H"));