javascript - Google Apps 脚本 - 如何将此代码应用于 Google 表格中的多个表格
问题描述
此代码仅适用于谷歌表中的一张表,我如何也可以使用其他表中的四个字符。
function truncate() {
const R = SpreadsheetApp.openById("SheetId");
const Choices = R.getSheetByName("Choices");
const Hrange = Choices.getRange("H2:H");
const data = Hrange.getValues().flat().map(r => [r.toString().substring(0,4)] );
Hrange.setValues(data);
}
解决方案
您需要使用getSheets()或getSheetByName()分别获取所有工作表或选定工作表。无论哪种方式,您都需要遍历所有选定的工作表,其中一种方法是使用forEach()。
所有工作表的解决方案:
function truncate() {
const R = SpreadsheetApp.openById("SheetId");
const sheets = R.getSheets(); // for all sheets
sheets.forEach(sh=>{
var Hrange = sh.getRange("H2:H");
var data = Hrange.getValues().flat().map(r => [r.toString().substring(0,4)] );
Hrange.setValues(data);
});
}
按名称选择工作表的解决方案:
function truncate() {
const R = SpreadsheetApp.openById("SheetId");
const sheets = ['Choices','Copy of Choices'].map(ch=>R.getSheetByName(ch)); // for selected sheets based on name
sheets.forEach(sh=>{
var Hrange = sh.getRange("H2:H");
var data = Hrange.getValues().flat().map(r => [r.toString().substring(0,4)] );
Hrange.setValues(data);
});
}
在此解决方案中,请修改['Choices','Copy of Choices']
以使用您选择的工作表名称。