我过去曾使用此脚本(使用源文件(编辑特定文件夹中一组电子表格中的单元格或单元格区域,但当我运行该脚本时,它不起作用。事实上,它不是从源图纸复制范围,而是清除目标图纸中的现有数据。
这是我一直在使用的脚本:
var files = DriveApp.getFolderById("1NNHFL6fMFz-LwJ4tZrvTN92foXhf7VS8").getFiles()
while (files.hasNext()) {
var file = files.next();
var shoot = SpreadsheetApp.openById(file.getId());
var sourcesheet = SpreadsheetApp.getActive().getSheetByName("Sheet1");
var sourcerange = sourcesheet.getRange('A:A');
var sourcevalues = sourcerange.getFormulas();
var destsheet = shoot.getSheetByName('Sheet1');
var destrange = destsheet.getRange('A:A');
destrange.setValues(sourcevalues);
}
}
这是一个链接到我一直在测试这个文件夹。
如果将setValues()
更改为setFormulas
(如果您需要公式(,则脚本运行良好:
function myFunction() {
var files = DriveApp.getFolderById("1NNHFL6fMFz-LwJ4tZrvTN92foXhf7VS8").getFiles()
while (files.hasNext()) {
var file = files.next();
var shoot = SpreadsheetApp.openById(file.getId());
var sourcesheet = SpreadsheetApp.getActive().getSheetByName("Sheet1");
var sourcerange = sourcesheet.getRange('A:A');
var sourcevalues = sourcerange.getFormulas();
var destsheet = shoot.getSheetByName('Sheet1');
var destrange = destsheet.getRange('A:A');
destrange.setFormulas(sourcevalues); // <------------- HERE
}
}
试试这个:
function myfunc() {
var files = DriveApp.getFolderById("1NNHFL6fMFz-LwJ4tZrvTN92foXhf7VS8").getFiles()
const ss=SpreadsheetApp.getActive();
var sourcesheet = ss.getSheetByName("Sheet1");
var sourcerange = sourcesheet.getRange(1,1,sourcesheet.getLastRow(),1);
var sourcevalues = sourcerange.getFormulas();
while (files.hasNext()) {
var file = files.next();
var shoot = SpreadsheetApp.openById(file.getId());
var destsheet = shoot.getSheetByName('Sheet1');
var destrange = destsheet.getRange(1,1,sourcesheet.getLastRow(),1);
destrange.setFormulas(sourcevalues);
}
}