我在这里的第一篇文章需要你的专家帮助。这是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.我在运行时没有显示任何错误但是没有按预期工作。
答案 0 :(得分:0)
欢迎。您是否尝试过编写任何脚本?显示到目前为止您尝试过的内容,包括您知道如何设置脚本并运行它并加载菜单按钮等。这是一个place you can start.
如果您真的不知道如何编写脚本,那么我建议您使用公式而不是脚本来完成所有操作,这样可以让您完全掌握(尽管只需点击一下按钮)。只需在新行中拉入所需的单元格,并在每次填写退货表单时复制并粘贴为值。
如果您想要更具体的帮助链接到虚拟电子表格和/或显示您编写的脚本。