insertRowBefore()无法显示目标值,请求排查谷歌表格代码问题
帮你搞定代码问题啦!
嘿,完全懂盯着屏幕太久脑子转不动的感觉😅,我帮你看看这段Google Apps Script的问题:
问题出在哪?
你现在的代码里,最后一行是硬编码了单元格标识的字符串数组(['B3', 'C3', ...]),而不是用之前已经获取到的B3:J3的实际值。另外还有个小细节:你要写入的是9列内容(B到J),但getRange(6,2,1,4)里的列数参数写的是4,这会导致只有前4列被写入,剩下的内容会丢失。
修正后的代码
function addDelivery() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var srcSheet = ss.getSheetByName("Sheet7"); // 获取B3:J3的实际单元格值,返回的是一个1行9列的二维数组 var rowValues = srcSheet.getRange("B3:J3").getValues(); // 在第6行前插入新行 srcSheet.insertRowBefore(6); // 将获取到的真实值写入新插入的第6行,从B列(第2列)开始,覆盖1行9列 srcSheet.getRange(6, 2, 1, 9).setValues(rowValues); }
关键修正点解释
- 直接复用你已经获取到的
rowValues变量:getValues()返回的就是对应单元格的实际内容,把它传给setValues()就能把真实值写入新行,不用手动写字符串。 - 调整
getRange的列数参数:B到J一共是9列(第2列到第10列),所以最后一个参数改成9,确保所有内容都能被写入。
内容的提问来源于stack exchange,提问作者manc stu
相关产品推荐
相关产品推荐

