You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google工作表双页指定列文本转大写代码失效求助

问题原因及解决方法

问题根源

你的代码存在逻辑漏洞:第一个判断块里,只要当前编辑的不是PDI工作表,就会触发return直接退出函数,后面针对Premium_PDI的代码完全没机会执行,这就是新工作表输入文本不转大写的原因。

优化后的代码

直接替换你当前的onEdit函数即可:

function onEdit(e) {
  // 定义需要生效的工作表名称
  const targetSheets = ['PDI', 'Premium_PDI'];
  // 定义不需要转大写的列(排除列)
  const notCols = [1, 8, 9, 14, 16, 17, 19, 20, 21, 28];
  const activeSheet = e.source.getActiveSheet();
  
  // 条件判断:不在目标工作表、属于排除列、或是表头行(第一行)时直接退出
  if (!targetSheets.includes(activeSheet.getName()) || 
      notCols.indexOf(e.range.columnStart) > -1 || 
      e.range.rowStart < 2) {
    return;
  }
  
  // 将输入内容转为大写
  e.range.setValue(e.value.toUpperCase());
}

代码说明

  • 用数组targetSheets统一管理需要生效的工作表,后续新增工作表直接往数组里追加名称即可
  • 只定义一次排除列notCols,避免重复冗余代码
  • 合并判断条件,确保符合要求的编辑操作才会执行转大写逻辑,不会因提前return导致后续逻辑失效

内容的提问来源于stack exchange,提问作者Mark Sheffield

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 13:53:10