将特定单元格内容转换为大写的脚本

function sortColumn() {

  var spreadsheet = SpreadsheetApp.getActive();

  var range = spreadsheet.getRange('A3:G995');

  var value = range.getValue();

  range.setValue(value.toUpperCase());

};

上面的脚本没有将选定的单元格内容转为大写,而是复制 A3 中的内容并将其粘贴到单元格的其余部分。有什么建议吗?谢谢!


米脂
浏览 105回答 2
2回答

拉风的咖菲猫

有两种选择。您可以将特定单元格的值转换为大写(如问题标题所建议的那样)或将单元格范围内的每个单元格的值转换为大写(如问题正文所建议的那样) .解决方案:如果要将A3的内容转为大写:function sortColumn() {  var spreadsheet = SpreadsheetApp.getActive();  var range = spreadsheet.getActiveSheet().getRange('A3');  var value = range.getValue();  range.setValue(value.toString().toUpperCase());};如果要将A3:G995中每个单元格的内容转为大写:function sortColumn() {  var spreadsheet = SpreadsheetApp.getActive();  var range = spreadsheet.getActiveSheet().getRange('A3:G995');  var value = range.getValues();  var valueCap=value.map(val => val.map(v=>v.toString().toUpperCase()));  range.setValues(valueCap);};

繁花如伊

问题:range.getValue()文档说返回区域中左上角单元格的值。因此,其余的单元格将被忽略。解决方案:改用getValues()并递归使用 map将所有值更改为大写并使用setValues(arr)示例脚本:const values = range.getValues();const func = e => Array.isArray(e) ? e.map(func) : String(e).toUpperCase();range.setValues(func(values))有关的:范围方法 getValues() 返回和 setValues() 接受什么?const values = /*Mock getValues*/ [['a','b'],['c','d']];const func = e => Array.isArray(e) ? e.map(func) : String(e).toUpperCase();const output = func(values);console.info(output);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript