![](/img/trans.png)
[英]Google Sheets change tab name based on cell value of a DIFFERENT tab
[英]Google Sheets call sheet by name based on cell value of current tab
我試圖通過創建函數來隱藏或取消隱藏特定的選項卡。 問題是工作表名稱會根據使用它的人而改變。 是否可以根據當前選項卡上單元格的值獲取工作表名稱?
例子:
function HideIncOne() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('G18').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('INCENTIVE #1'), true);
spreadsheet.getActiveSheet().hideSheet();
};
我試過 .getSheetByRange 但顯然沒有用。 所以我試圖從當前選項卡的單元格 B4 中調用文本,並使谷歌工作表隱藏與單元格 B4 中文本同名的工作表。
B4
值getSheetByName
獲取具有該名稱的getSheetByName
並隱藏它function HideSheetInB4() {
const spreadsheet = SpreadsheetApp.getActive();
spreadsheet
.getSheetByName(
spreadsheet
.getActiveSheet()
.getRange('B4')
.getValue()
)
.hideSheet();
}
在這種情況下,我只想弄亂以字符串“Sheet”命名的工作表,后跟 1 個或多個數字。
因此正則表達式/Sheet\\d{1,}/
或/Sheet\\d+/
function addingmetadatatosomesheet() {
const ss = SpreadsheetApp.getActive();
ss.getSheets().forEach((sh, i) => {
if (sh.getName().match(/^Sheet\d{1,}/)) {
sh.addDeveloperMetadata('shidx', i + 1);
}
});
}
function findSheetMetaData() {
const ss = SpreadsheetApp.getActive();
ss.getSheets().forEach(sh => {
let v = sh.createDeveloperMetadataFinder().withKey('shidx').find();
if (v && v.length > 0) {
v.forEach(e => {
Logger.log(`SheetName: ${sh.getName()} Metadata: ${e.getValue()}`);
});
}
});
}
1:37:31 PM Info SheetName: Sheet01 Metadata: 7.0
1:37:31 PM Info SheetName: Sheet1 Metadata: 8.0
1:37:31 PM Info SheetName: Sheet2 Metadata: 9.0
1:37:32 PM Info SheetName: Sheet3 Metadata: 10.0
1:37:32 PM Info SheetName: Sheet4 Metadata: 11.0
1:37:32 PM Info SheetName: Sheet5 Metadata: 12.0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.