我得到了活动表,然后是活动范围(在这种情况下为单个单元格),然后是该单元格的值,然后将值转换为大写,然后将其设置为单元格的值。我不会用大写字母表示另一端。
我尝试将单元格转换为大写(这给我带来了错误),还尝试将单元格的值转换为大写,然后将其设置为新的单元格值。
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);
}
代码部分中的错误消息
答案 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
}