使用Google脚本将特定单元格值从一个工作表复制到另一个工作表中的特定单元格

时间:2018-03-14 08:30:52

标签: google-apps-script

在花了10个小时计算出一个剧本之后,我试着试一试并在这里问一下。我已经阅读了Stackoverflow上的所有相关问题,但我仍然无法使我的脚本工作。我想要sheet1(发票)上的两个按钮。按钮1将单元格值复制到sheet2,按钮2清除工作表的内容。按钮2已经在工作。

按钮1的脚本需要做什么:

从sheet1到sheet2重复单元格值。但困难的部分(对我来说)是细胞是特定的(B4,C12,C13,F29,F30),它们需要复制到sheet2上的第一个自由行,但在特定列(F6,B6,D6, G6,I6)。我不知道该怎么做。

在尝试了很多脚本后,我现在有了这个:

    function DuplicatetoSheet2()
{
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var range = sheet.getRange('B4:F30');  
  var data = range.getValues();

  var ts = "sheet2";
  ts.getRange(ts.getLastRow()+1, ??? ).setValues(data);
}

由于sheet1是发票,我也试过这段代码,但我不知道我是否可以使用它:

var client = sheet.getRange("B4").getValue();
var dateInvoice = sheet.getRange("C12").getValue();
var numInvoice = sheet.getRange("C13").getValue();
var subtotal = sheet.getRange("F29").getValue();
var vat = sheet.getRange("F30").getValue();

我真的希望有人可以帮助我。

提前致谢!

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

function moveFromInvoiceSheetToSheet2() {
  var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("SHEET_1_NAME");
  var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("SHEET_2_NAME");
  var last_row = sheet2.getLastRow(); //This will fetch the last row index = first free row
  // copyTo can also be used instead of moveTo
  sheet1.getRange("B4").moveTo(sheet2.getRange(last_row + 1, 6)); //F = 6
  sheet1.getRange("C12").moveTo(sheet2.getRange(last_row + 1, 2)); //B = 2
  sheet1.getRange("C13").moveTo(sheet2.getRange(last_row + 1, 4)); //D = 4
  sheet1.getRange("F29").moveTo(sheet2.getRange(last_row + 1, 7)); //G = 7
  sheet1.getRange("F30").moveTo(sheet2.getRange(last_row + 1, 9)); //I = 9
}

复制后您无需清除内容,因为您正在移动。如果您愿意,也可以使用copyTo