如何读取传递至Google Apps Script的单元格区域值?
解决Google Apps Script遍历单元格区域值的问题
你的代码有两个核心问题:
- 循环变量名不匹配:定义了
cells但输出的是未声明的cell,会直接报错; - 没处理Google Sheets单元格区域的二维数组结构:传递过来的
cell_address是二维数组(每行对应一个子数组),必须嵌套遍历才能拿到每个单元格的值。
修正后的代码示例
方式一:嵌套for...of循环
function abb(cell_address) { Logger.log(cell_address); // 输出二维数组,例如[[qw], [123]] // 遍历每一行 for (let row of cell_address) { // 遍历当前行的每个单元格 for (let cell of row) { Logger.log(cell); // 依次输出 qw、123 } } return; }
方式二:forEach嵌套遍历
function abb(cell_address) { Logger.log(cell_address); cell_address.forEach(row => { row.forEach(cell => { Logger.log(cell); }); }); return; }
补充说明
Google Apps Script中,单元格区域作为参数传入自定义函数时,始终以二维数组形式存在:
- 单列多行区域(如A1:A2)会转为
[[值1], [值2]] - 单行多列区域(如A1:B1)会转为
[[值1, 值2]] - 多行多列区域则是
[[行1值1, 行1值2], [行2值1, 行2值2]]
所以必须通过两层遍历,先拿到每一行的数组,再遍历行内的单元格值。
内容的提问来源于stack exchange,提问作者abb2
相关产品推荐
相关产品推荐

