我試圖通過創建函式來隱藏或取消隱藏特定的選項卡。問題是作業表名稱會根據使用它的人而改變。是否可以根據當前選項卡上單元格的值獲取作業表名稱?
例子:
function HideIncOne() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('G18').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('INCENTIVE #1'), true);
spreadsheet.getActiveSheet().hideSheet();
};
我試過 .getSheetByRange 但顯然沒有用。所以我試圖從當前選項卡的單元格 B4 中呼叫文本,并使谷歌作業表隱藏與單元格 B4 中文本同名的作業表。
uj5u.com熱心網友回復:
- 獲取活動作業表的
B4值 - 使用該名稱獲取 Sheet
getSheetByName并隱藏它
function HideSheetInB4() {
const spreadsheet = SpreadsheetApp.getActive();
spreadsheet
.getSheetByName(
spreadsheet
.getActiveSheet()
.getRange('B4')
.getValue()
)
.hideSheet();
}
uj5u.com熱心網友回復:
這是將開發人員元資料放入選定作業表的簡單方法
在這種情況下,我只想弄亂以字串“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
- 這代表了一種解決方案,您的臨時用戶不會發現容易混淆。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/348860.html
上一篇:將1x6陣列中的值向下填充到_x6陣列GoogleAppScriptforGoogleSheet
下一篇:GoogleAppScripts&GoogleSheets-相當于VLOOKUP/IMPORTRANGE-使用多個電子表格
