如何将宏应用到包含 google 个电子表格的文件夹
how to apply a macro to a folder of google spreadsheets
我是 JavaScript 的新手,但有 Visual Basic 方面的经验。我真正需要的是编写一个宏,我可以将其放入装满 google 电子表格的文件夹中,并在特定单元格中写入“N/A”。我知道我想使用独立脚本。
我已经写好了“N/A”部分,但是不知道“应用到这个文件夹中的所有文件”部分怎么写。有什么提示吗?
您需要遍历选定的驱动器(使用DriveApp
)并获取所有电子表格文件。然后遍历每个电子表格文件的所有工作表并替换那些值。
function doTest() {
var driveId = <driveId>;
var drive = DriveApp.getFolderById(driveId);
// fetch spreadsheets files on your drive folder
var spreadsheets = drive.getFilesByType(MimeType.GOOGLE_SHEETS);
// traverse all the spreadsheets
while (spreadsheets.hasNext()) {
var spreadsheetFile = spreadsheets.next();
var spreadsheet = SpreadsheetApp.openById(spreadsheetFile.getId());
// traverse all sheets per spreadsheet
spreadsheet.getSheets().forEach(function (sheet) {
// each sheet, replace B16:B19 values with 'N/A'
sheet.getRange('B16:B19').setValue('N/A');
});
}
}
参考:
我是 JavaScript 的新手,但有 Visual Basic 方面的经验。我真正需要的是编写一个宏,我可以将其放入装满 google 电子表格的文件夹中,并在特定单元格中写入“N/A”。我知道我想使用独立脚本。
我已经写好了“N/A”部分,但是不知道“应用到这个文件夹中的所有文件”部分怎么写。有什么提示吗?
您需要遍历选定的驱动器(使用DriveApp
)并获取所有电子表格文件。然后遍历每个电子表格文件的所有工作表并替换那些值。
function doTest() {
var driveId = <driveId>;
var drive = DriveApp.getFolderById(driveId);
// fetch spreadsheets files on your drive folder
var spreadsheets = drive.getFilesByType(MimeType.GOOGLE_SHEETS);
// traverse all the spreadsheets
while (spreadsheets.hasNext()) {
var spreadsheetFile = spreadsheets.next();
var spreadsheet = SpreadsheetApp.openById(spreadsheetFile.getId());
// traverse all sheets per spreadsheet
spreadsheet.getSheets().forEach(function (sheet) {
// each sheet, replace B16:B19 values with 'N/A'
sheet.getRange('B16:B19').setValue('N/A');
});
}
}