我想知道如何在每次加载时将整个电子表格转换为大写
我是在onEdit上完成的,但是只有我编辑的单元格
function onEdit(e) {
if (typeof e.value != 'object') {
e.range.setValue(e.value.toUpperCase());
}
}
谢谢!
答案 0 :(得分:2)
如果我的理解是正确的,那么该示例脚本如何?请认为这只是几个答案之一。
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
sheets.forEach(function(sheet) {
var range = sheet.getDataRange();
var values = range.getValues().map(function(row) {return row.map(function(col) {return typeof col == "string" ? col.toUpperCase() : col})});
range.setValues(values);
});
}
onOpen()
由OnOpen事件触发器运行。onOpen()
的功能。如果要转换特定工作表中的值,那么以下脚本如何?
function onOpen() {
var sheetName = "###"; // Please set the sheet name here.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(sheetName);
var range = sheet.getDataRange();
var values = range.getValues().map(function(row) {return row.map(function(col) {return typeof col == "string" ? col.toUpperCase() : col})});
range.setValues(values);
}
如果我误解了您的问题,而这不是您想要的方向,我深表歉意。
答案 1 :(得分:0)
function ScriptOnLoad()
{
var spreadsheet = SpreadsheetApp.getActive();
var mysheet=spreadsheet.getActiveSheet();
if (mysheet.getSheetName()!='SheetB') return;
var rowCount=mysheet.getLastRow();
var colCount=mysheet.getLastColumn();
for (row=1; row<rowCount+1;row++)
{
for (col=1; col<colCount+1;col++)
{
var myFormula=mysheet.getRange(row, col).getFormula();
if (myFormula!="")
{
//Make as comment if formula will let as is
mysheet.getRange(row, col).setFormula( myFormula.toUpperCase() );
}
else
{
var myFormula=mysheet.getRange(row, col).getValue();
try
{
mysheet.getRange(row, col).setValue( myFormula.toUpperCase() );
}
catch(err)
{
}
}
}
}
}