我使用此函数根据B4中的单元格值重命名活动工作表-但我想为整个电子表格这样做,每个工作表应重命名为B4中自己的特定单元格值。谁能告诉我如何实现这与FOR循环,例如?!谢谢!
function RenameSheetsM() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet(); // active Sheet = Tab
var cell = sheet.getRange("B4");// cell B4 = Name
var value = cell.getValue();//Added
sheet.setName(value);//Sheet name changed
}
function RenameSheetsM() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
for (i=0; i<sheets.length; i++) {
var value = sheets[i].getRange("B4").getValue();
if(sheets[i].getName() != value){
sheets[i].setName(value);
}
}
}
可以是这样的:
function main() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
for (let sheet of sheets) {
RenameSheetsM(sheet);
}
}
function RenameSheetsM(sheet) {
var cell = sheet.getRange("B4");// cell B4 = Name
var value = cell.getValue();//Added
sheet.setName(value);//Sheet name changed
}
但是我更喜欢循环while()
,它看起来很整洁:
function main() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
while (sheets.length) {
var sheet = sheets.shift();
var cell = sheet.getRange("B4");
var value = cell.getValue();
sheet.setName(value);
}
}
重命名电子表格中的所有工作表
function renameSheets() {
SpreadsheetApp.getActive().getSheets().forEach(sh => sh.setName(sh.getRange('B4').getDisplayValue()));
}