早上好。
再次,我不得不请求你的帮助。
我正在编写的脚本是执行以下操作:
- 从选定的工作表中获取选项卡(在“源 1”表中选择)
- 将所有内容复制到粘贴表中
- 在“粘贴”表的基础上 - 创建一个包含所有内容的新文件(跳过标记的表)
我设法做的有一些缺点,例如:
- 没有循环来收集和复制标记的工作表
- 无参数仅复制样式和值(跳过功能)
但最让我担心的是照片没有被复制。
function copyAndPaste(){
var app = SpreadsheetApp;
var ss = app.getActiveSpreadsheet().getSheetByName("Source 1");
//Logger.log(ss.getRange(3, 8).getValue())
Logger.log("LastColumn "+ss.getLastColumn());
Logger.log("LastRow "+ss.getLastRow());
Logger.log(ss.getDataRange());
var ssRange = ss.getRange(ss.getLastRow(), ss.getLastColumn()).getA1Notation();
var ssRange_ = "A1:"+ssRange;
var select = ss.getRange(ssRange_)
var destSheet = app.getActiveSpreadsheet().getSheetByName("Paste");
var destRange = destSheet.getRange(destSheet.getLastRow()+1,1);
select.copyTo (destRange, {contentsOnly: true});
select.copyTo (destRange, {contentsOnly: false});
}
编辑 20.07.2018
这是代码,这是应该清理单元格中数据验证但出现错误的代码。
function copyAndPaset(){
var app = SpreadsheetApp;
var spreadsheet = app.getActiveSpreadsheet(); // Modified
var ss = spreadsheet.getSheetByName("Source 1");// Modified
var copiedSheet = ss.copyTo(spreadsheet).setName("Paste"); // Added
copiedSheet.clearContents(); // Added
var ssRange = ss.getRange(ss.getLastRow(), ss.getLastColumn()).getA1Notation();
var ssRange_ = "A1:"+ssRange;
var select = ss.getRange(ssRange_)
var destSheet = app.getActiveSpreadsheet().getSheetByName("Paste");
var destSheetRange = destSheet.getRange(destSheet.getLastRow(), destSheet.getLastColumn()).getA1Notation(); // I added but will get an error
var destSheetRange_ ="A1:"+destSheetRange; // Added
var destRangeClear = destSheet.getRange(destSheetRange_); // Added
destRangeClear.clearDataValidations() // Added
var destRange = destSheet.getRange(destSheet.getLastRow()+1,1);
select.copyTo (destRange, {contentsOnly: true});
//select.copyTo (destRange, {contentsOnly: false}); // When this is run, the merged cells are cleared.
}