Я пытаюсь изменить этот скрипт приложения, чтобы иметь возможность искать лист, содержащий определенный идентификатор (например, 123), и сделать этот лист видимым / активированным, если лист назван abc123def
.
Приведенный ниже код работает хорошо, если я ввожу полное имя листа abc123def
, но я хочу ввести только часть имени листа, идентификатор, в данном случае 123
.
Это работает для меня в PowerShell:
$match = "123"
$text = Get-Content -Path $fulltext | Select-String -Pattern $match
$text | Out-File -FilePath $output
Но я не уверен, как сделать аналогичное соответствие для нижеприведенного скрипта приложений:
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menuItems=[{name: 'Go To Tab', functionName: 'goToTab'} ];
ss.addMenu('Script', menuItems);
};
function goToTab() {
var name = Browser.inputBox('Enter Tab Name:','',Browser.Buttons.OK_CANCEL);
try {
SpreadsheetApp.getActiveSpreadsheet().getSheetByName(name).activate();
}
catch(e) {
Browser.msgBox('Sheet named: "' + name + '" does not exists!');
}
};
1 ответ
Попробуй это:
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menuItems = [{
name: 'Go To Tab',
functionName: 'goToTab'
}];
ss.addMenu('Script', menuItems);
};
function goToTab() {
var name = Browser.inputBox('Enter Tab Name:', '', Browser.Buttons.OK_CANCEL);
if (name) {
try {
//create a regex out of "name"
regexp = new RegExp(name, 'g');
//get all the sheets
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
//go through all the sheets
for (var i = 0; i < sheets.length; i++) {
//if sheet name matches the user entry then activate and go out of the loop
if (sheets[i].getName().match(regexp)) {
sheets[i].activate();
break;
}
}
} catch (e) {
Browser.msgBox('Sheet named: "' + name + '" does not exists!');
}
}
};
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Имейте в виду, что JavaScript — это НЕ то же самое, что Java! Включите все ярлыки, относящиеся к вашему вопросу; например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [svelte] и т. д.