我已经完成了一些阅读,但我对脚本的有限知识使得事情变得困难。我想:
The data in worksheet 'Download' uses IMPORTHTML
The data copied from Download
to store a historical record needs a date
in Column A
我设法让1和2工作,但无法解决第3次问题。请参阅下面的当前脚本。
function recordHistory() {
var ss = SpreadsheetApp.getActive(),
sheet = ss.getSheetByName('Trade_History');
var source = sheet.getRange("a2:E2000");
ss.getSheetByName('Download').getRange('A2:E5000').copyTo(sheet.getRange(sheet.getLastRow()+1, 2))
}
答案 0 :(得分:1)
您需要使用Utilities.formatDate()
将今天的日期格式化为DD / MM / YYYY。
因为你正在复制一组值,然后在它旁边(在A列中),粘贴另一组,我也改变了你的代码。
function recordHistory() {
var ss = SpreadsheetApp.getActive(),
destinationSheet = ss.getSheetByName('Trade_History');
var sourceData = ss.getSheetByName('Download').getDataRange().getValues();
for (var i=0; i<sourceData.length; i++) {
var row = sourceData[i];
var today = Utilities.formatDate(new Date(), 'GMT+10', 'dd/MM/yyyy'); // AEST is GMT+10
row.unshift(today); // Places data at the beginning of the row array
}
destinationSheet.getRange(destinationSheet.getLastRow()+1, // Append to existing data
1, // Start at Column A
sourceData.length, // Number of new rows to be added (determined from source data)
sourceData[0].length // Number of new columns to be added (determined from source data)
).setValues(sourceData); // Printe the values
}
从源数据的getting the values开始。这将返回一个可以循环的数组,以添加今天的日期。将日期添加到所有源数据后,确定将打印的范围边界。现在必须定义完整的维度,而不是简单地选择使用copyTo()
方法完成的起始单元格。最后,将值打印到定义的范围。