gpt4 book ai didi

javascript - 如果 x 推送到另一个电子表格,则迭代行

转载 作者:行者123 更新时间:2023-12-01 00:55:38 25 4
gpt4 key购买 nike

我的脚本大部分都在工作 - 除了推送的数据实际上说“范围”,我一定错过了一些东西 - 你不能在一个范围内设置值吗?

function up4Grabs() {
var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Final');
var destsheet = SpreadsheetApp.openById("MYID GOES HERE").getSheetByName('Items');
var destLastRow = destsheet.getLastRow();
var destRange = destsheet.getRange(1,9,destLastRow);

var dataLastRow = sheet1.getLastRow();
var dataRange = sheet1.getRange(1,9,dataLastRow);
var data = dataRange.getValues();

for(var i = 0; i < data.length; i++) {
if (data[i] > 0) {
var targetLastRow = destsheet.getLastRow() + 1;
var test = destsheet.getRange(1,9,targetLastRow);
sheet1.getvalues(test).setValues(sheet1.getRange(i+1,1,1,9))
}
}
}

最佳答案

问题:

setValue() 设置“范围”而不是实际值。

<小时/>

原因:

您首先将范围而不是值传递给 setValue()

<小时/>

解决方案:

function up4Grabs() {
var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Final');
var destsheet = SpreadsheetApp.openById("MY ID GOES HERE").getSheetByName('Items');
var destLastRow = destsheet.getLastRow();
var destRange = destsheet.getRange(1,9,destLastRow);

var dataLastRow = sheet1.getLastRow();
var dataRange = sheet1.getRange(1,9,dataLastRow);
var data = dataRange.getValues();

for(var i = 0; i < data.length; i++) {
if (data[i] > 0) {
var targetLastRow = destsheet.getLastRow() + 1;
var values = sheet1.getRange(i+1,1,1,9).getValues();
destsheet.getRange(1,9,values.length,9).setValues(values);
}
}
}

由于您要设置整个范围的值,因此需要使用 setValues() 而不是 setValue()注意:复数而不是 我还将 getValues() 添加到您已经拉取的范围中,这会返回该范围内的值数组,然后可以将其传递给 setValues() .

关于javascript - 如果 x 推送到另一个电子表格,则迭代行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56599403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com