Google 工作表函数将参数转换为大写

Google Sheets Function Converting a Parameter to Upper Case

如果我将 Google 表格宏中的一个变量传递给一个函数,我该如何将该变量转换为大写?下面的示例不起作用(顺便说一句:这些只是更大函数的子集)

function testit(textComingIn){

var a = textComingIn.toUpperCase();

return a;

}

or 

function testit(textComingIn){

var a = textComingIn.value.toUpperCase();

return a;

}

尝试:

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

或刚刚选择了columns/rows:

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))

如果您正在寻找一个简单的大写转换函数,而不是用于电子表格单元格的函数。尝试使用这个 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

在输入数字的单元格上抛出... TypeError: datopar.toUpperCase 不是函数

在 JS 中演示自动输入。

所以...首先使用 .toString() 对其他值进行字符串化。 工作代码是:

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();
}