使用脚本大规模编辑文件夹中图纸中的单元格范围



我过去曾使用此脚本(使用源文件(编辑特定文件夹中一组电子表格中的单元格或单元格区域,但当我运行该脚本时,它不起作用。事实上,它不是从源图纸复制范围,而是清除目标图纸中的现有数据。

这是我一直在使用的脚本:

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);         
}
}

最新更新