Google apps script 谷歌脚本&x2B;电子表格&x2B;打开时将整个工作表转换为大写

Google apps script 谷歌脚本&x2B;电子表格&x2B;打开时将整个工作表转换为大写,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我想知道如何在每次加载时将整个电子表格转换为大写 我做了一次编辑,但只编辑了单元格 function onEdit(e) { if (typeof e.value != 'object') { e.range.setValue(e.value.toUpperCase()); } } 谢谢 您希望将电子表格中所有单元格中的所有值转换为大写 您希望在打开电子表格时运行脚本 如果我的理解是正确的,那么这个示例脚本怎么样?请把这看作是几个答案中的一个 示例脚本: 在该函数中,使用

我想知道如何在每次加载时将整个电子表格转换为大写

我做了一次编辑,但只编辑了单元格

function onEdit(e) {
  if (typeof e.value != 'object') {
    e.range.setValue(e.value.toUpperCase());
  }
}
谢谢

  • 您希望将电子表格中所有单元格中的所有值转换为大写
  • 您希望在打开电子表格时运行脚本
如果我的理解是正确的,那么这个示例脚本怎么样?请把这看作是几个答案中的一个

示例脚本:
  • 在该函数中,使用简单触发器。因此,当打开电子表格时,
    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);
    }
    
参考资料:
如果我误解了您的问题,并且这不是您想要的方向,我很抱歉。

函数ScriptOnLoad()
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) 
          {
          }
        }
      }
  }
}
{ var电子表格=SpreadsheetApp.getActive(); var mysheet=spreadsheet.getActiveSheet(); 如果(mysheet.getSheetName()!='SheetB')返回; var rowCount=mysheet.getLastRow(); var colCount=mysheet.getLastColumn();
对于(row=1;row)您是最好的,您必须对此小心,因为您将把公式转换为固定值
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) 
          {
          }
        }
      }
  }
}