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

Google Sheet脚本问题:如何将变量与数组中各值进行大小比较

Google Sheets脚本问题修正与实现

核心错误点

你用getSheetValues()获取的voltCompareData是二维数组,不是Range对象,所以不能调用getValue()方法——这就是提取voltSample1时出错的原因。getSheetValues()返回的结构是[[值1, 值2, 值3]](对应你取的1行3列数据),需要用数组索引来取值。

修正后的完整代码

function getVoltage() {
  // 获取用户输入的电压值
  var voltReqed = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2").getRange("A1").getValue();
  Logger.log("用户输入电压: " + voltReqed);

  // 从SpecsList表获取第3行第2列开始的1行3列数据,返回二维数组
  var voltCompareData = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("SpecsList").getSheetValues(3, 2, 1, 3);
  Logger.log("对比数据数组: " + voltCompareData);

  // 提取数组中第一个对比值(数组索引从0开始,对应表格的第3行第2列)
  var voltSample1 = voltCompareData[0][0];
  Logger.log("第一个对比值: " + voltSample1);

  // 遍历所有对比值,逐个判断大小关系
  var compareValues = voltCompareData[0]; // 取出整行的对比值数组
  compareValues.forEach(function(volt) {
    if (voltReqed > volt) {
      Logger.log(`${voltReqed} 大于 ${volt}`);
    } else if (voltReqed < volt) {
      Logger.log(`${voltReqed} 小于 ${volt}`);
    } else {
      Logger.log(`${voltReqed} 等于 ${volt}`);
    }
  });
}

关键细节说明

  • getSheetValues(row, col, numRows, numCols)返回的是二维数组:外层元素对应行,内层元素对应列,索引从0开始(和表格的1起始索引不同)。比如你取的是第3行第2列开始的1行3列,数组结构就是[[单元格(3,2), 单元格(3,3), 单元格(3,4)]]。
  • 要提取单个值时,用数组[行索引][列索引],比如第一个值是voltCompareData[0][0],第二个是voltCompareData[0][1]。
  • 用forEach循环可以快速遍历所有对比值,完成大小判断逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 22:48:51