我有许多Google工作表,分为特定的文件夹。我的文件夹有十张纸。每个工作表都有12个电子表格。他们都是一样的。我需要擦除所有相同范围的所有电子表格的特定单元格并将值设置为其他值,并且我只能使用12个电子表格中的数组代码来完成此操作。我需要的是为文件夹运行的数组代码,这是一种运行我的代码并同时完成120个电子表格的所有工作的方式。
我试图增强此代码,但是它不起作用,当我运行此代码时,什么也没有发生,也没有错误消息。
function apagarTUTMOD2(){
var folder = DriveApp.getFolderById("folder ID");
var p = folder.getFiles();
for (i in p){
var sheet = p[i].getSheets();
for(j in sheet) {
sheet[j].getRange('F5:F164').clearContent(); //clear this range
sheet[j].getRange('F105:F164').setValue("X") // write "X" into this range
}
}
}
我认为有关文件夹的信息有误,但我不知道如何解决。谢谢你的帮助。
我相信您的目标如下。
X
在所有工作表中将值设置为“ F105:F164”范围。folder.getFiles()
返回FileIterator。在这种情况下,next()
方法用于检索文件对象。SpreadsheetApp.open()
。当以上几点反映到您的脚本时,它将变为以下内容。
function apagarTUTMOD2() {
var folder = DriveApp.getFolderById("folder ID");
var p = folder.getFilesByType(MimeType.GOOGLE_SHEETS);
while (p.hasNext()) {
SpreadsheetApp.open(p.next()).getSheets().forEach(sheet => {
sheet.getRange('F5:F164').clearContent(); //clear this range
sheet.getRange('F105:F164').setValue("X") // write "X" into this range
});
}
}
从开始a way to run my code and do all the work for the 120 spreadsheets at once.
,我担心上面的脚本一次运行是否可以直接用于您的实际情况。因此,在这个答案中,我还要提出以下脚本。以下脚本使用Sheets API和Drive API。使用这些API时,将可以降低处理成本。
使用此脚本之前,请在Advanced Google服务中启用Sheets API和Drive API。
function apagarTUTMOD2_2() {
const folderId = "folder ID"; // Please set the folder ID.
const files = Drive.Files.list({maxResults: 1000, q: `'${folderId}' in parents and trashed=false and mimeType='${MimeType.GOOGLE_SHEETS}'`}).items;
files.forEach(({id}) => {
const sheetIds = Sheets.Spreadsheets.get(id, {fields: "sheets(properties(sheetId))"}).sheets;
sheetIds[0].properties.sheetId
const requests = sheetIds.flatMap(o => [
{repeatCell:{range:{sheetId:o.properties.sheetId,startRowIndex:4,endRowIndex:164,startColumnIndex:5,endColumnIndex:6},cell:{userEnteredValue:{}},fields:"userEnteredValue"}},
{repeatCell:{range:{sheetId:o.properties.sheetId,startRowIndex:104,endRowIndex:164,startColumnIndex:5,endColumnIndex:6},cell:{userEnteredValue:{stringValue:"X"}},fields:"userEnteredValue"}}
]);
Sheets.Spreadsheets.batchUpdate({requests: requests}, id);
});
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句