为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

米脂 2023-03-18 10:55:27
function sortColumn() {  var spreadsheet = SpreadsheetApp.getActive();  var range = spreadsheet.getRange('A3:G995');  var value = range.getValue();  range.setValue(value.toUpperCase());};上面的脚本没有将选定的单元格内容转为大写,而是复制 A3 中的内容并将其粘贴到单元格的其余部分。有什么建议吗?谢谢!
查看完整描述

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

};


查看完整回答
反对 回复 2023-03-18
?
繁花如伊

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


查看完整回答
反对 回复 2023-03-18
  • 2 回答
  • 0 关注
  • 104 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信