Loops 谷歌循环脚本
我正在尝试将电子表格中的一些数据插入到另一个电子表格中,问题是循环的行为不符合预期,它在目标电子表格中只给我一个条目。我试过使用while,但没有任何功能,但它不起作用 代码如下:Loops 谷歌循环脚本,loops,google-apps-script,google-sheets,closures,Loops,Google Apps Script,Google Sheets,Closures,我正在尝试将电子表格中的一些数据插入到另一个电子表格中,问题是循环的行为不符合预期,它在目标电子表格中只给我一个条目。我试过使用while,但没有任何功能,但它不起作用 代码如下: function move(){ var homeBook = SpreadsheetApp.getActiveSpreadsheet(); var sheet = homeBook.getSheets()[0]; var limit = sheet.getLastRow(); //number of r
function move(){
var homeBook = SpreadsheetApp.getActiveSpreadsheet();
var sheet = homeBook.getSheets()[0];
var limit = sheet.getLastRow(); //number of rows in the sheet
var evento = sheet.getRange(2, 1, limit-1).getValues(); //event list
var descript = sheet.getRange(2,2,limit-1).getValues(); //description list
var tags = sheet.getRange(2,3,limit-1).getValues(); //tag list
var sheetsIDHome = sheet.getRange(2,4,limit-1).getValues(); //ID list
var targetBook = SpreadsheetApp.openById("1t3qMTu2opYffLmFfTuIbV6BrwsDe9iLHZJ_ZT89kHr8"); //target workbook
var target = targetBook.getSheets()[0]; //Sheet1
var targetLimit =target.getLastRow(); //Rows with content
var sheetsIDTarget = target.getRange(targetLimit, 4); // ID list
var targetRow = targetLimit+1; //row where content is going to be inserted
for(i = 2;i <= limit;i++){//loop for each value to be inserted in each row of the target sheet
(function(x){
target.getRange(targetRow,1).setValue(x);
target.getRange(targetRow,2).setValue(descript[2]);
target.getRange(targetRow,3).setValue(tags[3]);
target.getRange(targetRow,4).setValue(sheetsIDHome[4]);
targetRow = targetRow++;
})(i);
};
函数移动(){
var homeBook=SpreadsheetApp.getActiveSpreadsheet();
var sheet=homeBook.getSheets()[0];
var limit=sheet.getLastRow();//工作表中的行数
var evento=sheet.getRange(2,1,limit-1).getValues();//事件列表
var descript=sheet.getRange(2,2,limit-1).getValues();//说明列表
var tags=sheet.getRange(2,3,limit-1).getValues();//标记列表
var sheetsIDHome=sheet.getRange(2,4,limit-1).getValues();//ID列表
var targetBook=SpreadsheetApp.openById(“1t3qmtu2opyfflfmfftuibv6brwsde9ilhzj_ZT89kHr8”);//目标工作簿
var target=targetBook.getSheets()[0];//Sheet1
var targetLimit=target.getLastRow();//包含内容的行
var sheetsIDTarget=target.getRange(targetLimit,4);//ID列表
var targetRow=targetLimit+1;//将插入内容的行
对于(i=2;i您试图访问从列1-4的值创建的四个数组
您的for
语句需要匹配它们的结构,从0
的第一个数组实例开始。您可以在迭代中使用任何数组,我选择了第一个
此外,我删除了该函数,并用evento
中的实例替换了x
++
增加变量的值,无需在此赋值
for (var i = 0; i < evento.length; i++) {
target.getRange(targetRow,1).setValue(evento[i]);
target.getRange(targetRow,2).setValue(descript[i]);
target.getRange(targetRow,3).setValue(tags[i]);
target.getRange(targetRow,4).setValue(sheetsIDHome[i]);
targetRow++;
}
for(变量i=0;i
有一个代码放错了位置,请检查下面我的代码:
function UpdateBSRSpecial()
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var testForm = ss.getSheetByName("ENTRY FORM");
var testTable = ss.getSheetByName("BSR DATA");
var testFormValue = testForm.getRange("G6").getValue();
var rangeData = testTable.getDataRange();
var lastColumn = rangeData.getLastColumn();
var lastRow = rangeData.getLastRow();
for(var i=2;i<=lastRow;i++){
var dataID = testTable.getRange(i,1).getValue();
if(testFormValue == dataID)
{
testTable.getRange(i,6).setValue("new value");
};
};
};
函数updateBSR特殊()
{
var ss=SpreadsheetApp.getActiveSpreadsheet();
var testForm=ss.getSheetByName(“条目表单”);
var testTable=ss.getSheetByName(“BSR数据”);
var testFormValue=testForm.getRange(“G6”).getValue();
var rangeData=testTable.getDataRange();
var lastColumn=rangeData.getLastColumn();
var lastRow=rangeData.getLastRow();
对于(var i=2;i)您试图实现的目标是什么?“行为不符合预期”有点过于宽泛。如果您不询问“发生了什么…”,而是解释建议更改的原因,这将使未来读者更好地回答这个问题。