Google Sheets脚本报错:数据与范围行数不匹配问题求助
问题原因
报错核心是传入setValues()的二维数组与目标单元格范围的行列数不匹配:
- 你定义的
values = [[value2, value3]]是1行2列的数组结构 - 目标范围
C2:C3是2行1列的单元格区域
两者行列维度完全相反,导致无法完成赋值操作。
修正方案
将values调整为2行1列的二维数组,与目标范围的行列数对应即可:
function GEDailyData() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName('Historical Price Data'); var sheet2 = ss.getSheetByName('Rare Current Prices'); var value2 = sheet2.getRange('C2').getDisplayValue(); var value3 = sheet2.getRange('C3').getDisplayValue(); // 改为2行1列的数组结构 var values = [[value2], [value3]]; var range = sheet.getRange("C2:C3"); range.setValues(values); }
更高效的优化写法(可选)
可以通过批量获取/设置范围的方式减少API调用次数(Google Apps Script对API调用有频次限制,批量操作更稳定高效):
function GEDailyData() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName('Historical Price Data'); var sheet2 = ss.getSheetByName('Rare Current Prices'); // 一次性获取C2:C3的所有显示值 var values = sheet2.getRange('C2:C3').getDisplayValues(); // 直接批量赋值到目标范围 sheet.getRange('C2:C3').setValues(values); }
内容的提问来源于stack exchange,提问作者Hillside126
相关产品推荐
相关产品推荐

