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

使用Google Apps Script修改谷歌表格每第三行行高时遇报错求助

问题分析与解决

错误原因

  • setRowHeight是Sheet对象的方法,不能通过Range对象调用,你当前用sheet.getRange(...).setRowHeight()属于调用对象错误,这是核心问题。
  • 就算用Sheet的setRowHeight,你的参数也写错了,正确参数是行号和高度值,不需要额外传1。

修正后的代码

直接用Sheet对象的setRowHeight,循环里每次指定行号设置高度,更简洁高效:

function Height() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var totalRows = sheet.getMaxRows();

  for (var i=3; i <= totalRows; i+=3){
      // sheet.getRange(i, 1, 1, sheet.getMaxColumns()).setBackground("#F3F3F3");
      sheet.setRowHeight(i, 200); // 直接通过Sheet对象设置行高
  }
}

如果非要通过Range对象操作,可以用setRowHeights(复数形式,参数为一维数组),写法如下:

function Height() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var totalRows = sheet.getMaxRows();
  var totalColumns = sheet.getMaxColumns();

  for (var i=3; i <= totalRows; i+=3){
      var range = sheet.getRange(i, 1, 1, totalColumns);
      // range.setBackground("#F3F3F3");
      range.setRowHeights([200]); // 传入高度数组,对应Range里的行
  }
}

额外提示

  • 循环操作行时,直接用Sheet的方法比先获取Range再操作更高效,尤其是行数较多的场景。
  • 错误提示里的autoResizeRows是Sheet的方法,同样不能通过Range对象调用,应该是你之前代码的残留内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 10:23:17