如何在Apps Script中指定源工作表数据选取范围为A4:E17
修改方案
你只需要调整源数据范围的获取逻辑即可,原有粘贴逻辑可以完全保留,会自动适配新选取区间的行列尺寸。
原逻辑说明
原代码中sourceSheet.getDataRange().getValues()会抓取源工作表内所有包含数据的连续区域,无法匹配固定选取A4:E17区间的需求。
具体修改
将取源数据的代码行:
var sourceData = sourceSheet.getDataRange().getValues();
替换为固定区间抓取的写法:
var sourceData = sourceSheet.getRange("A4:E17").getValues();
修改后完整可运行代码
function transferList() { var sourceSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Cancellations"); // 固定抓取A4:E17区间内容 var sourceData = sourceSheet.getRange("A4:E17").getValues(); var targetSS = SpreadsheetApp.openById("*****************").getSheetByName("Cancellations"); var targetRangeTop = targetSS.getLastRow(); targetSS.getRange(targetRangeTop+1, 1, sourceData.length, sourceData[0].length).setValues(sourceData); }
补充说明
getRange("A4:E17")是Apps Script中通过A1样式引用固定单元格区间的标准写法,对于固定范围的选取场景,这种写法比手动传起始行、起始列、行数、列数的参数形式更直观,不容易出现计算错误。- 该写法会完整复制A4到E17的所有单元格内容,包含区间内的空值。如果需要自动过滤区间末尾的空行、避免向目标表写入多余空白内容,可以在拿到
sourceData后增加空行过滤逻辑。
内容的提问来源于stack exchange,提问作者comiconor
相关产品推荐
相关产品推荐

