Как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.
Проблема и обходное решение:
К сожалению, на данном этапе метод, подобный регулярному выражению, не может использоваться с getSheetByName()
. Поэтому в этом случае необходимо использовать обходные пути.
В этом ответе я хотел бы предложить 2 шаблона.
Шаблон 1:
В этом шаблоне test
используется для поиска по названию листа. getSheetName()
используется для получения имени листа. В этом случае предполагается, что шаблон похож на 2020 0304 V1
.
Пример сценария:
function myFunction() {
const searchText = "V1";
const sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
const regex = RegExp(`\\d{4} \\d{4} ${searchText}`);
const sheet = sheets.filter(s => regex.test(s.getSheetName()));
if (sheet.length > 0) console.log(sheet[0].getSheetName());
}
- В этом случае, если есть только один лист, который имеет лист имя шаблона
\d{4} \d{4} V1
в вашей электронной таблице, вы можете получить лист по sheet[0]
.
шаблон 2:
В этом шаблоне includes
используется для поиск имени листа. getSheetName()
используется для получения имени листа.
Пример сценария:
function myFunction() {
const searchText = "V1";
const sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
const sheet = sheets.filter(s => s.getSheetName().includes(searchText));
if (sheet.length > 0) console.log(sheet[0].getSheetName());
}
- В этом случае, если существует только один лист с именем листа, включающим
V1
в вашей электронной таблице, вы можете извлечь лист с помощью sheet[0]
.
Примечание:
- В этом случае, пожалуйста, включите V8 в редакторе сценариев.
Ссылки:
Если я неправильно понял ваш вопрос, и это было не то направление, которое вы хотите, я прошу прощения.