Функция Google Sheets Преобразование параметра в верхний регистр - PullRequest
0 голосов
/ 28 марта 2020

Если я передам переменную в макросах Google Sheets в функцию, как мне преобразовать эту переменную в верхний регистр? Приведенные ниже примеры не работают (кстати: это только подмножества большей функции)

function testit(textComingIn){

var a = textComingIn.toUpperCase();

return a;

}

or 

function testit(textComingIn){

var a = textComingIn.value.toUpperCase();

return a;

}

Ответы [ 2 ]

2 голосов
/ 28 марта 2020

try:

function onEdit(e) {
if (typeof e.value != 'object') {
e.range.setValue(e.value.toUpperCase());
}}

или только выбранные столбцы / строки:

function onEdit(e) {
var column = e.range.getColumn();
var row = e.range.getRow();
if ( column >=  4 && col <= 10 ) {
if ( row >= 5 ) {
if (typeof e.value != 'object') {
e.range.setValue(e.value.toUpperCase());
}}}}

для использования без сценариев:

=UPPER(A1)

=ARRAYFORMULA(UPPER(A1:A))
1 голос
/ 28 марта 2020

Если вы ищете простую функцию преобразования UpperCase, а не функцию для использования в ячейках электронной таблицы. Попробуйте использовать эту функцию myUpper ():

function testNow() {
  var valorCelda = SpreadsheetApp.getActiveRange().getValue();
  Logger.log(valorCelda);
  Logger.log(myUpper(valorCelda));
  Logger.log(valorCelda.toUpperCase());  
}
function myUpper(datopar){
  return datopar.toUpperCase();
}

Журнал для запуска этого кода (использует активную ячейку) ... для текста, содержащего ячейку

[20-03-27 20:28:41:614 CST] Dirección de correo electrónico
[20-03-27 20:28:41:619 CST] DIRECCIÓN DE CORREO ELECTRÓNICO
[20-03-27 20:28:41:621 CST] DIRECCIÓN DE CORREO ELECTRÓNICO

В ячейке с типом числа throws ... TypeError: datopar.toUpperCase не является функцией

, демонстрирующей автоматическую типизацию в JS.

Так что ... используйте .toString () firt для строкового преобразования других значений. Рабочий код:

function testNow() {
  var valorCelda = SpreadsheetApp.getActiveRange().getValue();
  Logger.log(valorCelda);
  Logger.log(myUpper(valorCelda)); // 
  // Logger.log(valorCelda.toUpperCase());
}
function myUpper(datopar){
  return datopar.toString().toUpperCase();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...