为什么我的单元格在Google表格中没有转换为大写?

时间:2019-07-18 22:27:07

标签: string google-apps-script google-sheets

我得到了活动表,然后是活动范围(在这种情况下为单个单元格),然后是该单元格的值,然后将值转换为大写,然后将其设置为单元格的值。我不会用大写字母表示另一端。

我尝试将单元格转换为大写(这给我带来了错误),还尝试将单元格的值转换为大写,然后将其设置为新的单元格值。

function makeUC() {
  //get sheet
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  //get active range (selected cells)
  var cell = sheet.getActiveRange();

  //get UI for alert functionality
  var ui = SpreadsheetApp.getUi();

  //for testing
  //ui.alert(range.getValue());

  //get value of active cell
  var val = cell.getValue();

  //test 1 - convert value to upper case/// not working. TypeError: Cannot 
  find function toUpperCase in object Range.
  cell.toUpperCase();

  //test 2 part 1 - convert value to upper case/// not working
  val.toUpperCase();

  //test 2 part 2 - set range to new value
  cell.setValue(val);

}

代码部分中的错误消息

2 个答案:

答案 0 :(得分:2)

String.prototype.toUpperCase()适用于可以转换为字符串的对象。不幸的是,Range对象不能自动转换为字符串。

对于val.toUpperCase();,分配给val的值不变。更改以下代码行

//test 2 part 1 - convert value to upper case/// not working
val.toUpperCase();

//test 2 part 2 - set range to new value
cell.setValue(val);

//test 2 part 1 - convert value to upper case/// not working
var upperCaseValue = val.toUpperCase();

//test 2 part 2 - set range to new value
cell.setValue(upperCaseValue);

相关

答案 1 :(得分:0)

尝试一下:

function makeUC() {
  var sheet=SpreadsheetApp.getActive().getActiveSheet();
  var cell=sheet.getActiveRange();
  var val=cell.getValue();
  cell.setValue(val.toUpperCase());//toUpperCase doesnt change string in place it returns the uppercase
}

String.toUpperCase