我已经完成了一些阅读,但我对脚本的有限知识使得事情变得困难。我想:
我设法让1和2工作,但无法解决第3次问题。请参阅下面的当前脚本
function Copy() {
var sss = SpreadsheetApp.openById('ID#');
var ss = sss.getSheetByName('Workout');
var range = ss.getRange('C3:F20');
var data = range.getValues();
var tss = SpreadsheetApp.openById('ID#');
var ts = tss.getSheetByName('Log');
ts.getRange(ts.getLastRow()+1, 1, data.length, data[0].length).setValues(data);
}
我有什么:
我想要的是什么:
答案 0 :(得分:0)
试试这个。
function copy() {
var s = SpreadsheetApp.getActiveSpreadsheet();
var range = 'a1:d8';
var sS = s.getSheetByName('Workout');
var sRange = sS.getRange(range);
var sRow1 = sRange.getRow();
var sRow2 = sRange.getLastRow();
var sCol1 = sRange.getColumn();
var sCol2 = sRange.getLastColumn();
var tS = s.getSheetByName('Log');
sRange.copyValuesToRange(tS, sCol1, sCol2, sRow1, sRow2);
var tRange = tS.getRange(sRow1, sCol2 + 1, sRow2 - sRow1 + 1, 1);
var d = Utilities.formatDate(new Date(), 'GMT', 'dd/mm/yyyy');
tRange.setValue(d);
}
答案 1 :(得分:0)
当使用具有“a2:d8”数据的样本表图像时,也可以编写以下脚本。此脚本从“Workout”中检索“a2:d8”的数据,并将数据复制到“Log”的最后一行的下一行。在复制数据之前,今天的日期将添加到数据中。
function Copy() {
var ss = SpreadsheetApp.openById('ID#')
var data = ss.getSheetByName('Workout').getRange('a2:d8').setNumberFormat('@').getValues();
[i.push(Utilities.formatDate(new Date(), 'GMT', 'dd/MM/yyyy')) for each (i in data)];
var s = ss.getSheetByName('Log');
s.getRange(s.getLastRow() + 1, 1, data.length, data[0].length).setNumberFormat('@').setValues(data);
}
在此脚本中,数据将导入到数组中,并使用该数组处理数据。使用“setNumberFormat('@')”可以在不改变格式的情况下获得'd2:d8'的'00'。
我希望这会对你有所帮助。
答案 2 :(得分:0)
感谢您的帮助@Tanaike。这是最后的代码,稍微重命名。
function Copy() {
var doc = SpreadsheetApp.openById('1SsE1KceJ9RqgKPBuneCSb-MaRQvSxIVJC8Bi-EUZ2os')
var sheet1 = doc.getSheetByName('Workout');
var range = sheet1.getRange(3, 3, sheet1.getLastRow() - 2, 4);
var data = range.setNumberFormat('@').getValues();
[i.push(Utilities.formatDate(new Date(), 'GMT', 'dd/MM/yyyy')) for each (i in data)];
var sheet2 = doc.getSheetByName('Log');
sheet2.getRange(sheet2.getLastRow() + 1, 1, data.length, data[0].length).setNumberFormat('@').setValues(data);
}