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

Google Sheets脚本隐藏列报错:Those columns are out of bounds问题排查

问题分析与解决方案

问题根源

报错Exception: Those columns are out of bounds.的核心原因是:执行tempSheet.hideColumns(i+1)时,i+1对应的列号超出了临时表格tempSheet的实际列数范围。

你提到仅当columnHidden为true且列数超过30时程序崩溃,是因为只有此时才会触发hideColumns方法;当列数≤30时,i+1始终落在tempSheet的列数范围内,因此不会报错。日志最后一行的isHidden: false说明报错发生在之前某次循环的hideColumns调用(那次循环的columnHidden为true),日志打印是循环末尾执行的,所以滞后于报错触发时机。

解决方案

1. 确保临时表格列数匹配

先检查tempSheet的列数是否与原表格的range列数一致——如果是复制原range内容到tempSheet,要确保复制操作完整覆盖所有列,避免tempSheet列数不足。

2. 增加列号边界校验

在调用hideColumns前,先判断目标列号是否在tempSheet的有效范围内,避免越界:

const startColumn = range.getColumn();
const numColumns = range.getNumColumns();

for (let i = 0; i < numColumns; i++) {
  const originalColumn = startColumn + i;
  // 先校验原表格列号是否合法
  if (originalColumn > sheet.getLastColumn()) {
    Logger.log(`原表格列${originalColumn}超出范围,跳过`);
    continue;
  }
  const columnHidden = sheet.isColumnHiddenByUser(originalColumn);
  const ende = tempSheet.getLastColumn();
  
  if (columnHidden) {
    const targetCol = i + 1;
    // 校验临时表格列号是否合法
    if (targetCol <= ende) {
      tempSheet.hideColumns(targetCol);
    } else {
      Logger.log(`跳过隐藏列${originalColumn}:临时表格列${targetCol}超出范围`);
    }
  }
  Logger.log(`start column: ${startColumn + i}, left: ${numColumns-i} , Ende: ${ende} , Checking column: ${originalColumn}, isHidden: ${columnHidden}`);
}

3. 限制循环范围到临时表格实际列数

如果tempSheet的列数确实少于原range的列数,直接将循环上限设为两者的较小值,避免无效循环:

const startColumn = range.getColumn();
const numColumns = range.getNumColumns();
const tempMaxCols = tempSheet.getLastColumn();
// 只遍历双方都存在的列
const loopMax = Math.min(numColumns, tempMaxCols);

for (let i = 0; i < loopMax; i++) {
  const originalColumn = startColumn + i;
  const columnHidden = sheet.isColumnHiddenByUser(originalColumn);
  
  if (columnHidden) {
    tempSheet.hideColumns(i+1);
  }
  Logger.log(`start column: ${startColumn + i}, left: ${loopMax-i} , Ende: ${tempMaxCols} , Checking column: ${originalColumn}, isHidden: ${columnHidden}`);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 21:28:24