将Google表格中的数据复制并粘贴到另一列

时间:2020-02-05 04:02:34

标签: google-apps-script google-sheets

我有一个仪表板,该仪表板基于不断增长的客户数据库报告实时数据,并且我目前正在通过每天将列中的数据复制并粘贴到下一个中​​来跟踪日常过程。

我想创建一个脚本,该脚本自动将值从数组(B:B)复制到另一个工作表或右侧的下一个可用列中。

您可以参考下面的图片以进一步了解。

Sample

我看到可能在此线程,但是它们都是关于复制到不同的行而不是不同的列。

非常感谢!

1 个答案:

答案 0 :(得分:0)

getLastRow()方法用于返回具有内容的最后一行的位置

getLastColumn()方法用于返回具有内容的最后一列的位置

因此,为了能够将数据复制到下一个可用列中,建议您尝试以下操作:

function copyColumn() {
  var ss = SpreadsheetApp.openById("ID_OF_THE_SPREADSHEET");
  var sheetFrom = ss.getSheetByName("SHEET_FROM");
  var sheetTo = ss.getSheetByName("SHEET_TO");
  var values = sheetFrom.getRange(NO_OF_THE_ROW_WHERE_DATA_STARTS, 3, sheetFrom.getLastRow(), 1).getValues();
  sheetTo.getRange(NO_OF_THE_ROW_WHERE_DATA_STARTS,sheetTo.getLastColumn()+1,values.length,1).setValues(values);
}

上述脚本将所有需要使用getRange()方法复制并使用getValues()复制的数据本地化。

  • NO_OF_THE_ROW_WHERE_DATA_STARTS是代表数据开始的行号的值(在您的情况下为No of LP - Secured的行);

  • 3是代表C列(要复制的数据所在的位置)的值;

  • sheetFrom.getLastRow()是代表您要复制的数据结尾的值;

  • 1是代表需要复制的列数的值。

然后,再次使用getRange()方法以便能够识别需要粘贴数据的位置,并setValues()才能真正地粘贴数据。

注意:以上脚本适用于不同的电子表格和/或不同的工作表,或适用于同一电子表格中的工作表。如果要在后一种情况下使用它,则只需输入工作表的名称,而不是SHEET_FROMSHEET_TO

此外,我建议您检查以下链接,因为它们可能会有所帮助:

  1. Sheet Class Apps Script - getRange();

  2. Range Class Apps Script - getValues();

  3. Range Class Apps Script - setValues();

  4. Sheet Class Apps Script - getLastColumn();

  5. Sheet Class Apps Script - getLastRow();