我有一个仪表板,该仪表板基于不断增长的客户数据库报告实时数据,并且我目前正在通过每天将列中的数据复制并粘贴到下一个中来跟踪日常过程。
我想创建一个脚本,该脚本自动将值从数组(B:B)复制到另一个工作表或右侧的下一个可用列中。
您可以参考下面的图片以进一步了解。
我看到可能在此线程,但是它们都是关于复制到不同的行而不是不同的列。
非常感谢!
答案 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_FROM
和SHEET_TO
。
此外,我建议您检查以下链接,因为它们可能会有所帮助: