使用getRangeList批量取单元格值时遇'Range Not Found'错误求助
解决Google Apps Script中getRangeList的"Range Not Found"错误
你的代码报错原因很明确:范围字符串写错了——列表里的'A14,AM14'用了逗号分隔,Google Sheets的范围语法要求用冒号:表示连续区域,把逗号改成冒号就能解决这个问题。
修正后的完整代码:
var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName('Meta Awareness Campaign'); var metacampaignvalues = sheet.getRangeList([ 'A3:AM3','A4:AM4','A5:AM5','A6:AM6','A7:AM7','A8:AM8','A9:AM9', 'A10:AM10','A11:AM11','A12:AM12','A13:AM13','A14:AM14','A15:AM15', 'A16:AM16','A17:AM17','A18:AM18','A19:AM19','A20:AM20' ]).getRanges().map(range => range.getValues());
补充优化说明
因为getValues()返回的是二维数组(哪怕单行区域也会返回[[值1, 值2, ...]]),如果想直接得到每行的一维数组,简化后续取值操作,可以把map的逻辑改成:
var metacampaignvalues = sheet.getRangeList([ // 上述范围列表 ]).getRanges().map(range => range.getValues()[0]);
这样metacampaignvalues[0]就是A3到AM3的一维数组,直接用metacampaignvalues[0][0]取A3的值,metacampaignvalues[0][1]取B3的值即可。
内容的提问来源于stack exchange,提问作者Karim
相关产品推荐
相关产品推荐

