簡體   English   中英

如何復制值並將其粘貼到另一張紙上的下一個可用行中?

[英]How do I copy values and paste them into the next available rows on another sheet?

我是Google腳本的新手,不是編碼員。 我已經試過確切地查找我需要做的事,但是在Google腳本中找不到它。

我在一張紙上有公式,並且需要一個腳本來將值從該表復制到另一張紙上的下一個可用行。

數據在表格“訂單信息”單元格H40至AC67上。 我需要將值復制到工作表“ Distributed Order List”上的下一個可用行,從A列第2行開始-如果相關的話。

這是到目前為止我可以使用的,但是問題是運行大約需要一分鍾:

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]);
};

我已經嘗試過了,但是我不知道如何將我的值變成“ 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);
};

實際上,您非常接近回答:)。

希望每次運行腳本時都沒有其他數據要從“訂購信息”標簽的范圍H40復制到AC67,
我正在使用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);
};

希望這可以幫助

編輯:

然后使用

var source = ss.getSheetByName(“ Order Info”)。getRange(“ H40:AC67”)。getValues();

代替

var source = ss.getSheetByName(“ Order Info”)。getDataRange();

這將從源工作表創建所需的范圍限制

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM