Сценарий приложения для соответствия имени листа, который содержит идентификатор и делает его видимым - PullRequest
0 голосов
/ 23 сентября 2018

Я пытаюсь изменить этот скрипт приложения, чтобы иметь возможность искать лист, который содержит определенный идентификатор (например, 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 Ответ

0 голосов
/ 23 сентября 2018

попробуйте это:

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!');
        }
    }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...