[英]How do I copy values and paste them into the next available rows on another sheet?
I'm pretty new to google script and am not a coder. 我是Google脚本的新手,不是编码员。 I've tried looking up exactly what I need to do but can't find it in google script.
我已经试过确切地查找我需要做的事,但是在Google脚本中找不到它。
I have formulas in one sheet and need a script to copy values from that table to the next available row(s) on another sheet. 我在一张纸上有公式,并且需要一个脚本来将值从该表复制到另一张纸上的下一个可用行。
The data is on sheet "Order Info" cells H40 to AC67. 数据在表格“订单信息”单元格H40至AC67上。 I need to copy the values to the next available row on sheet "Distributed Order List", starting in column A, row 2 - if that's relevant.
我需要将值复制到工作表“ Distributed Order List”上的下一个可用行,从A列第2行开始-如果相关的话。
Here's what I have so far that works, but the problem is that it takes about a minute to run: 这是到目前为止我可以使用的,但是问题是运行大约需要一分钟:
function enterorder2() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var source = ss.getRange("Order Info!h40:ac40");
var destSheet = ss.getSheetByName("Distributed Order List");
destSheet.appendRow(source.getValues()[0]);
var source = ss.getRange("Order Info!h41:ac41");
var destSheet = ss.getSheetByName("Distributed Order List");
destSheet.appendRow(source.getValues()[0]);
var source = ss.getRange("Order Info!h42:ac42");
var destSheet = ss.getSheetByName("Distributed Order List");
destSheet.appendRow(source.getValues()[0]);
var source = ss.getRange("Order Info!h43:ac43");
var destSheet = ss.getSheetByName("Distributed Order List");
destSheet.appendRow(source.getValues()[0]);
var source = ss.getRange("Order Info!h44:ac44");
var destSheet = ss.getSheetByName("Distributed Order List");
destSheet.appendRow(source.getValues()[0]);
var source = ss.getRange("Order Info!h45:ac45");
var destSheet = ss.getSheetByName("Distributed Order List");
destSheet.appendRow(source.getValues()[0]);
var source = ss.getRange("Order Info!h46:ac46");
var destSheet = ss.getSheetByName("Distributed Order List");
destSheet.appendRow(source.getValues()[0]);
var source = ss.getRange("Order Info!h47:ac47");
var destSheet = ss.getSheetByName("Distributed Order List");
destSheet.appendRow(source.getValues()[0]);
var source = ss.getRange("Order Info!h48:ac48");
var destSheet = ss.getSheetByName("Distributed Order List");
destSheet.appendRow(source.getValues()[0]);
var source = ss.getRange("Order Info!h49:ac49");
var destSheet = ss.getSheetByName("Distributed Order List");
destSheet.appendRow(source.getValues()[0]);
var source = ss.getRange("Order Info!h50:ac50");
var destSheet = ss.getSheetByName("Distributed Order List");
destSheet.appendRow(source.getValues()[0]);
var source = ss.getRange("Order Info!h51:ac51");
var destSheet = ss.getSheetByName("Distributed Order List");
destSheet.appendRow(source.getValues()[0]);
var source = ss.getRange("Order Info!h52:ac52");
var destSheet = ss.getSheetByName("Distributed Order List");
destSheet.appendRow(source.getValues()[0]);
var source = ss.getRange("Order Info!h53:ac53");
var destSheet = ss.getSheetByName("Distributed Order List");
destSheet.appendRow(source.getValues()[0]);
var source = ss.getRange("Order Info!h54:ac54");
var destSheet = ss.getSheetByName("Distributed Order List");
destSheet.appendRow(source.getValues()[0]);
var source = ss.getRange("Order Info!h55:ac55");
var destSheet = ss.getSheetByName("Distributed Order List");
destSheet.appendRow(source.getValues()[0]);
var source = ss.getRange("Order Info!h56:ac56");
var destSheet = ss.getSheetByName("Distributed Order List");
destSheet.appendRow(source.getValues()[0]);
var source = ss.getRange("Order Info!h57:ac57");
var destSheet = ss.getSheetByName("Distributed Order List");
destSheet.appendRow(source.getValues()[0]);
var source = ss.getRange("Order Info!h58:ac58");
var destSheet = ss.getSheetByName("Distributed Order List");
destSheet.appendRow(source.getValues()[0]);
var source = ss.getRange("Order Info!h59:ac59");
var destSheet = ss.getSheetByName("Distributed Order List");
destSheet.appendRow(source.getValues()[0]);
var source = ss.getRange("Order Info!h60:ac60");
var destSheet = ss.getSheetByName("Distributed Order List");
destSheet.appendRow(source.getValues()[0]);
var source = ss.getRange("Order Info!h61:ac61");
var destSheet = ss.getSheetByName("Distributed Order List");
destSheet.appendRow(source.getValues()[0]);
var source = ss.getRange("Order Info!h62:ac62");
var destSheet = ss.getSheetByName("Distributed Order List");
destSheet.appendRow(source.getValues()[0]);
var source = ss.getRange("Order Info!h63:ac63");
var destSheet = ss.getSheetByName("Distributed Order List");
destSheet.appendRow(source.getValues()[0]);
var source = ss.getRange("Order Info!h64:ac64");
var destSheet = ss.getSheetByName("Distributed Order List");
destSheet.appendRow(source.getValues()[0]);
var source = ss.getRange("Order Info!h65:ac65");
var destSheet = ss.getSheetByName("Distributed Order List");
destSheet.appendRow(source.getValues()[0]);
var source = ss.getRange("Order Info!h66:ac66");
var destSheet = ss.getSheetByName("Distributed Order List");
destSheet.appendRow(source.getValues()[0]);
var source = ss.getRange("Order Info!h67:ac67");
var destSheet = ss.getSheetByName("Distributed Order List");
destSheet.appendRow(source.getValues()[0]);
};
I've tried this, but I don't know how to get my values into this instead of "1,2,3 4,5,6 7,8,9": 我已经尝试过了,但是我不知道如何将我的值变成“ 1,2,3 4,5,6 7,8,9”:
function enterorder() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var destSheet = ss.getSheetByName("Distributed Order List");
var source = [[1,2,3],[4,5,6],[7,8,9]];
var row = source.length;
var column = source[0].length;
destSheet.getRange(destSheet.getLastRow()+1, 1, row, column).setValues(source);
};
Actually you are very close to answer :) . 实际上,您非常接近回答:)。
Hoping there is no other data to be copied from "Order Info" tab's range H40 to AC67 every time you run the script, 希望每次运行脚本时都没有其他数据要从“订购信息”标签的范围H40复制到AC67,
I'm using getDataRange() which gets all available data from "Order Info" tab and feeds to var source in your code. 我正在使用getDataRange(),它从“订单信息”选项卡中获取所有可用数据,并在您的代码中提供给var源。
function enterorder() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var destSheet = ss.getSheetByName("Distributed Order List");
//var source = [[1,2,3],[4,5,6],[7,8,9]];
var source = ss.getSheetByName("Order Info").getDataRange(); // data feeding
var row = source.length;
var column = source[0].length;
destSheet.getRange(destSheet.getLastRow()+1, 1, row, column).setValues(source);
};
Hope this helps 希望这可以帮助
Edited: 编辑:
Then use 然后使用
var source = ss.getSheetByName("Order Info").getRange("H40:AC67").getValues(); var source = ss.getSheetByName(“ Order Info”)。getRange(“ H40:AC67”)。getValues();
Instead of 代替
var source = ss.getSheetByName("Order Info").getDataRange(); var source = ss.getSheetByName(“ Order Info”)。getDataRange();
This will create the required range restriction from the source sheet 这将从源工作表创建所需的范围限制
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.