После вопроса будь мной здесь У меня есть этот скрипт, предоставленный @utphx (большое спасибо @utphx) ...
function onEdit(e) {
if (Object.prototype.toString.call(e.range.getValue()) !== "[object Date]" ) {
e.range.setValue(e.value.toUpperCase());
}
}
Это прекрасно работает, но яЯ хочу немного его расширить, чтобы исключить некоторые символы Юникода, например ... например ... Ⓚ ☎, потому что они имеют больший размер шрифта, чем буквы и цифры в той же ячейке, и после функции верхнего регистра они меняются одним и тем же шрифтомразмер, как буквы и цифры, которые они выглядят очень маленькими по сравнению с ними. Я пробовал несколько способов, которые я нашел здесь и в остальной части сети, но из-за моего недостатка знаний в кодировании Java, и, поскольку эти символы могут находиться в одной ячейке с цифрами и буквами, либо все символы заменяются на заглавныеили ни один из них.
Есть ли способ указать этот тип символов в приведенном выше коде, чтобы исключить их изменение в верхний регистр?.
РЕДАКТИРОВАТЬ: я нашел следующий код в этот ответ @Ruben и с добавлением предложения @ ocordova об использовании метода getFormula () , функция в верхнем регистре работает правильно, не касаясь ячеек, содержащих любые формулы и символы этого типа. : ☎ 101
function onEdit(e) {
var range = e.range;
var value = range.getValue();
var sheet = range.getSheet();
if (range.getRow() > 1 &&
range.getColumn() > 1 &&
typeof value === 'string') {
if(!range.getFormula()) {
range.setValue(value.toUpperCase());
} else {
if (ind === 0 && e.range.rowStart > 1 && e.range.columnStart >= 1 && e.range.getFormula() == '') {
e.range.setValue(e.value.toUpperCase());
return;
}
}
}
}
Единственное, что мне нужно добавить сейчас, это проверить, содержат ли ячейки какой-либо из этих символов: Ⓚ Ⓘ Ⓣ Ⓕ (и, возможно, еще несколько букв или цифр этого типа)так что исключить их из заглавной функции. Кто-нибудь знает, как я могу это сделать? Я думаю, что REGEX будет решением, но я понятия не имею, как и где поместить его в приведенный выше код.
EDIT2: поцарапать вышеупомянутый EDITЭтот код ведет себя очень странно. Если вы выберете несколько ячеек, чтобы изменить стиль границы, то он скопирует значения из ячейки во все остальные выделенные ячейки !!!. Я выложу новый вопрос по этому поводу.
Заранее спасибо
Nessus