2 回答
TA贡献1995条经验 获得超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);
};
TA贡献2012条经验 获得超12个赞
问题:
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);
添加回答
举报