正如您在下面的尝试中所知,谷歌脚本不是我最大的优势。
我们所有的学校奖励/制裁目前都进入谷歌表。在每个学期结束时,我想将这些工作表中的一些存档到新的工作簿/电子表格中。发生这种情况时,他们只需要重复复印件。
我可以让这个代码适用于任何单个工作表,但对for循环不太熟悉,因此无法将所有四个工作表实现这一点。
感谢专家们提供的任何帮助!
`
> function copySheetValues()
{
var source = SpreadsheetApp.getActiveSpreadsheet();
var sheetname = ['tally', 'commendations', 'detentions', 'omegas'];
for (var i=0, i<3, i++)
var sheet = source.getSheetByName(sheetname[i]);
sheet.activate();
var sourcename = sheet.getSheetName();
var sourceDataRange = sheet.getDataRange();
var sourceSheetValues = sourceDataRange.getValues();
var sourceRows = sourceDataRange.getNumRows();
var sourceColumns = sourceDataRange.getNumColumns();
var ssNew = SpreadsheetApp.create('Archive');
var url = (ssNew.getUrl());
var destination = SpreadsheetApp.openByUrl(url);
destination.insertSheet(sourcename, 0);
destination.getDataRange().offset(0, 0, sourceRows, sourceColumns).setValues(sourceSheetValues);
}
&#13;
`
答案 0 :(得分:0)
使用不同的方法,你能看出这对你有用吗?
function backup() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var bs = SpreadsheetApp.openById(ss.copy('Archive').getId());
var sheets = ['tally', 'commendations', 'detentions', 'omegas'];
SpreadsheetApp.flush();
var bsl = bs.getSheets().forEach( function (s) {
if(sheets.indexOf(s.getName()) !== -1) {
s.getDataRange().copyTo(s.getDataRange(), {
contentsOnly: true
});
} else {
bs.setActiveSheet(s);
bs.deleteActiveSheet();
}
});
}