Google apps script 将一行从一张图纸复制到另一张图纸
我知道以前有人问过这个问题,因为我花了5个小时在这里,甚至在关闭的谷歌产品论坛上都试过了。我无法阻止任何循环。条件得到满足,但循环继续运行。我一直在网上复制其他示例并插入我自己的变量,但最后,我会让5行多次转到新的工作表,直到工作表变得疲劳或其他什么 我试过getDataRange…我试过getRange…我试过循环和其他循环中的var,我都试过了,所以请看一看,让我知道这段代码是如何在新工作表中多次添加行的:Google apps script 将一行从一张图纸复制到另一张图纸,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我知道以前有人问过这个问题,因为我花了5个小时在这里,甚至在关闭的谷歌产品论坛上都试过了。我无法阻止任何循环。条件得到满足,但循环继续运行。我一直在网上复制其他示例并插入我自己的变量,但最后,我会让5行多次转到新的工作表,直到工作表变得疲劳或其他什么 我试过getDataRange…我试过getRange…我试过循环和其他循环中的var,我都试过了,所以请看一看,让我知道这段代码是如何在新工作表中多次添加行的: function runReportAllMemCos1() { var she
function runReportAllMemCos1() {
var sheet1 = sskey.getSheetByName('Businesses');
var sheet2 = sskey.getSheetByName('tempsheet');
var data = sheet1.getRange(1,1, sheet1.getLastRow(), sheet1.getLastColumn()).getValues();
var dest = [];
for (var i = 0; i < data.length; i++ ) {
if (data[i][12] == "Associate") {
dest.push(data[i]);
} Logger.log(data)
if (dest.length > 0 ) {
sheet2.getRange(sheet2.getLastRow()+1,1,dest.length,dest[0].length).setValues(dest);
}
}
}
谢谢你的帮助 是的,问题在于dest变量。在每次循环后都不会重置它,因此每一行都会在其中不断复合,并且每次都会重复,因此当循环通过第三行时,第1行和第2行仍然在dest变量中。Put dest=[];只要在for循环中,它就会工作 函数runReportAllMemCos1{ var sheet1=sskey.getSheetByName'business'; var sheet2=sskey.getSheetByName'tempsheet'; var data=sheet1.getRange1,1,sheet1.getLastRow,sheet1.getLastColumn.getValues; var dest=[]; 对于变量i=0;i
是的,问题在于dest变量。在每次循环后都不会重置它,因此每一行都会在其中不断复合,并且每次都会重复,因此当循环通过第三行时,第1行和第2行仍然在dest变量中。Put dest=[];只要在for循环中,它就会工作 函数runReportAllMemCos1{ var sheet1=sskey.getSheetByName'business'; var sheet2=sskey.getSheetByName'tempsheet'; var data=sheet1.getRange1,1,sheet1.getLastRow,sheet1.getLastColumn.getValues; var dest=[]; 对于变量i=0;i
我真的不同意user1795832的回答,因为它不使用批处理写入,而只是在每次条件为真时将数据写入表2。。。那么为什么要使用数组来实现这一点呢 试着在循环完成后批量写入工作表2,它应该按照预期工作 函数runReportAllMemCos1{ var sheet1=sskey.getSheetByName'business'; var sheet2=sskey.getSheetByName'tempsheet'; var data=sheet1.getRange1,1,sheet1.getLastRow,sheet1.getLastColumn.getValues; var dest=[]; 对于变量i=0;i
我真的不同意user1795832的回答,因为它不使用批处理写入,而只是在每次条件为真时将数据写入表2。。。那么为什么要使用数组来实现这一点呢 试着在循环完成后批量写入工作表2,它应该按照预期工作 函数runReportAllMemCos1{ var sheet1=sskey.getSheetByName'business'; var sheet2=sskey.getSheetByName'tempsheet'; var data=sheet1.getRange1,1,sheet1.getLastRow,sheet1.getLastColumn.getValues; var dest=[]; 对于变量i=0;i
哦,天哪,就是这样。我整天都没看足球比赛,因为我的设定值在循环中。再次感谢您的大力帮助@Serge!快速问题-使用上述内容,我可以从sheet1中选择一个特定列发送到sheet2吗?我试着在dest.pushdata[I][2]中输入列号;例如,但我一直收到一个错误。我不确定我完全理解你想要什么。。。当条件为真时,是否只复制特定列,而不在工作表2上复制其他列?是-假设我已获得sheet1范围,然后根据搜索词筛选这些行,但只希望sheet1中的一列或两列移到sheet2。问题似乎在于不同的范围大小,但我正在努力解决如何操作它们。如果您必须使用中间数组,我将更新我的答案:-哦,天哪,就是这样。我整天都没看足球比赛,因为我的设定值在循环中。再次感谢您的大力帮助@Serge!快速问题-使用上述内容,我可以从sheet1中选择一个特定列发送到sheet2吗?我试着在dest.pushdata[I][2]中输入列号;例如,但我一直收到一个错误。我不确定我完全理解你想要什么。。。当条件为真时,是否只复制特定列,而不在工作表2上复制其他列?是-假设我已获得sheet1范围,然后根据搜索词筛选这些行,但只希望sheet1中的一列或两列移到sheet2。问题似乎在于不同的范围大小,但我正在努力解决如何操作它们如果必须使用中间数组,我将更新我的答案:-谢谢-另一个答案中的解决方案也有帮助-我在循环中有设置值,这就是为什么它一遍又一遍地重写行的原因。谢谢-另一个答案中的解决方案也很有帮助-我在循环中有设置值,这就是为什么它一遍又一遍地重写行的原因。