在花了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();
我真的希望有人可以帮助我。
提前致谢!
答案 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