我正在使用下面的函数

问题描述 投票:0回答:1
function copyData() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sourceSheet = ss.getSheetByName("Monthly Commission Claim"); var destSheet = ss.getSheetByName("Vans Claimed On"); var dateClaimed = sourceSheet.getRange("I7:I24").getValue(); var salesAdvisor = sourceSheet.getRange("H7:H24").getValue(); var grossProfit = sourceSheet.getRange("D7:D24").getValue(); var stockNumber = sourceSheet.getRange("A7:A24").getValue(); var model = sourceSheet.getRange("B7:B24").getValue(); var year = sourceSheet.getRange("C7:C27").getValue(); var amount = sourceSheet.getRange("L7:L24").getValue(); destSheet.appendRow([dateClaimed, salesAdvisor, grossProfit, stockNumber, model, year, amount]); }

	
确定阵列输出尺寸为2D

在评论部分中讨论了AS,您应该将所有

getValue()

方法更改为

getValues()

,因为您试图从多个单元格中获取多个数据。这将导致一个2D数组,该数组将使该行无效:
destSheet.appendRow([dateClaimed, salesAdvisor, grossProfit, stockNumber, model, year, amount]);
google-sheets google-apps-script copy range
1个回答
1
投票
这是因为

appendRow

方法仅接受1D数组。因此,您必须通过使用for loop(在这种情况下使用foreach)来分发处理后数据的每个方法。新脚本应该看起来像这样:

appendRow
参考:

GETVALUES()

appendrow()

foreach()

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.