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

如何用Google Apps Script为Google Sheets指定范围动态设置货币格式?

修改Google Sheets指定范围货币格式的脚本调整

以下是适配你需求的修改后脚本,当A3单元格的下拉值变化时,只会修改B3:B5和C6:C8这两个指定范围的货币格式,其他单元格保持原有格式:

const SHEET_NAME = 'Sheet1';
const CUR_CELL = 'A3';
// 定义需要修改格式的指定范围,可根据需求增减
const TARGET_RANGES = ['B3:B5', 'C6:C8'];
const CURS = {
  dollar: '$',
  euro: '€',
};

function onEdit(e) {
  const sheet = e.source.getActiveSheet();
  // 判断是否是目标工作表和目标单元格的编辑操作
  if (sheet.getName() !== SHEET_NAME || e.range.getA1Notation() !== CUR_CELL.toUpperCase()) {
    return;
  }

  const selectedCur = e.value.toLowerCase();
  // 确认选中的货币类型在定义的列表中
  if (!CURS[selectedCur]) {
    return;
  }

  const currencyFormat = `${CURS[selectedCur]}#,###.00`;
  // 遍历每个指定范围,设置货币格式
  TARGET_RANGES.forEach(rangeA1 => {
    const range = sheet.getRange(rangeA1);
    // 获取范围的行数和列数,生成对应格式数组
    const rowCount = range.getNumRows();
    const colCount = range.getNumColumns();
    const formatArray = Array(rowCount).fill().map(() => Array(colCount).fill(currencyFormat));
    range.setNumberFormats(formatArray);
  });
}

关键改动说明:

  • 新增TARGET_RANGES数组:直接存放需要修改格式的A1符号范围,后续要调整范围只需修改这个数组,无需改动核心逻辑。
  • 替换整列处理逻辑:不再处理整列,改为遍历每个指定范围单独设置格式,精准控制生效区域。
  • 增加有效性判断:先校验选中的货币类型是否在CURS定义中,避免无效输入导致脚本报错。
  • 动态生成格式数组:根据每个范围的行列数生成对应长度的格式数组,确保范围里的每个单元格都应用正确格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 12:40:24