脚本从一张纸上复制某些单元格并粘贴到下一个空行

时间:2018-06-14 03:50:31

标签: google-apps-script google-sheets automation

我在这里的第一篇文章需要你的专家帮助。这是link to the file。我在Google网上论坛上发帖,他们告诉我来这里。

我有一张是客户退货表格(即退货单)。我填写此表并打印出来发送给客户并进行记录。

我想知道是否可以将某些单元格(例如客户名称(F9),网站订单#(F8)和其他一些单元格复制到另一张表格(即客户退货),这基本上是所有客户退货的日志。

理想情况下,我想创建一个脚本,将这些特定单元格复制到NEXT行上“客户退货”表单中的相应列。即不会覆盖以前的条目。然后我将此脚本分配给一个按钮。如果我们取消这一点,我将能够记录我以前的所有客户退货

我通过谷歌搜索了许多帖子,发现几乎几乎相似的情况,但他们有一些差异,因此对我不起作用。我甚至不是脚本的初学者,所以这就是我在这里的原因。

谢谢!

编辑:我的错误,添加了指向虚拟文件的链接,以便于理解或尝试代码。以下两个代码都作为项目存在于虚拟文件中。

第一部分代码

function CopyPaste() {
   var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Returnform');            
   var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Customer returns');            
   sheet1.getRange('E8').copyTo(sheet2.getRange('B2'))
   sheet1.getRange('E22').copyTo(sheet2.getRange('C2'))
   sheet1.getRange('K6').copyTo(sheet2.getRange('D2'))
}

问题: 1.不是动态的,即粘贴在同一行数据而不是下一个空行。 2.拉出公式而不是值,因此会产生一些问题。

第二部分代码

function addReturnRequest() {
  try {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sh = ss.getSheetByName("Returnform");
    var sa = sh.getDataRange().getValues();  // Get everything
    sh = ss.getSheetByName("Customer Returns");
    var count = sh.getRange(sh.getLastRow(),1,1,1).getValue();
    // Build the row on Customer Returns
    count++;
    var da = [];
    da.push(count);
    da.push(sa[8][5]); // Name F9
    da.push(sa[7][5]); // Order F8
    da.push(sa[21][4]); // Qty E22
    da.push("");
    da.push("");
    da.push(sa[21][11]); // L22
    Logger.log(da);
    sh.getRange(sh.getLastRow()+1,1,1,da.length).setValues([da]);
  }
  catch(err) {
    Logger.log(err);
  }
}

问题: 我不明白 2.我在运行时没有显示任何错误但是没有按预期工作。

1 个答案:

答案 0 :(得分:0)

欢迎。您是否尝试过编写任何脚本?显示到目前为止您尝试过的内容,包括您知道如何设置脚本并运行它并加载菜单按钮等。这是一个place you can start.

如果您真的不知道如何编写脚本,那么我建议您使用公式而不是脚本来完成所有操作,这样可以让您完全掌握(尽管只需点击一下按钮)。只需在新行中拉入所需的单元格,并在每次填写退货表单时复制并粘贴为值。

如果您想要更具体的帮助链接到虚拟电子表格和/或显示您编写的脚本。

相关问题