[英]Array for Google Sheet clearcontent
我有很多谷歌表分为特定的文件夹。 我有 10 张按文件夹。 每张表有 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()
方法用于检索文件 object。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.
,我担心上面的脚本是否可以通过一次运行直接适用于您的实际情况。 所以在这个答案中,我还想提出以下脚本。 以下脚本使用表格 API 和驱动器 API。 当使用这些 API 时,将能够降低流程成本。
在使用此脚本之前, 请在高级 Google 服务中启用表格 API 和驱动器 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);
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.