【问题标题】:Duplicate specific cell values from one sheet to specific cells in another using Google script使用 Google 脚本将特定单元格值从一张表复制到另一张表中的特定单元格
【发布时间】:2018-03-14 16:54:34
【问题描述】:

在花了 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();

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

提前致谢!

【问题讨论】:

  • specific columns (F6, B6, D6, G6, I6) 你的意思是列 F、B、D、G、I 吗?

标签: google-apps-script


【解决方案1】:

你可以试试这样的:

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

【讨论】:

  • 感谢您的帮助!它将所有数据复制到 sheet2 上的第一个空闲行。但是当我清除发票的内容时,我需要做什么来制作新的发票,sheet2上的数据也被删除了。我知道我需要将 getValues 放在某个地方,但我不知道具体在哪里。另一件事,脚本将数据放在第 255 行,我猜是因为前 254 行的单元格周围都有边框?你可以在脚本中调整吗?
  • 您可以使用清除按钮获取新发票。您需要调试该边框问题,尝试删除边框然后运行脚本,查看数据去向等等stackoverflow.com/help/someone-answers
猜你喜欢
  • 2021-05-27
  • 2015-01-17
  • 1970-01-01
  • 2014-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多