javascript - 从一张纸上取值并根据 ID 将它们保存在另一张纸上
问题描述
我尝试创建一个脚本,该脚本从一张表中获取值并根据 ID 将它们保存在另一张表中。不幸的是,脚本只保存第一个值。怎么了?
function script1()
{
// get first sheet
var Kwoty = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Kwoty");
var FirstRow = 10;
var LastRow = Kwoty.getLastRow();
var RowRange = LastRow - FirstRow + 1;
var WholeRange = Kwoty.getRange(FirstRow,6,RowRange,8);
var AllValues = WholeRange.getValues();
//Logger.log(AllValues);
//get 2 sheet
var rozliczenie = Kwoty.getRange('G6').getValue();//Get sheet name
var docelowysheet = SpreadsheetApp.openById('1_QgbLn9gKowDhCOwZ8lY9XBe5JmN107xhGDJ2kaGJIE').getSheetByName(rozliczenie);
var FirstRow2 = 3;
var LastRow2 = docelowysheet.getLastRow();
var RowRange2 = LastRow2 - FirstRow2 + 1;
var WholeRange2 = docelowysheet.getRange(FirstRow2,1,RowRange2,13);
var AllValues2 = WholeRange2.getValues();
//Logger.log(AllValues2);
for (var i=0;i<AllValues.length;i++){
var CurrentRow = AllValues[i];
var Id1 = CurrentRow[0]; //col with ID Sheet1
var kwota = CurrentRow[7]; //col with rate Sheet 1
Logger.log(CurrentRow);
for (var i=0;i<AllValues2.length;i++){
var CurrentRow2 = AllValues2[i];
var Id2 = CurrentRow2[0]; //Col with ID Sheet2
var kwota2 = CurrentRow2[12]; //Col with rate Sheet2
//Logger.log(Id2);
//Set Values
if (Id1 == Id2){
var setRow2 = i + FirstRow2;
docelowysheet.getRange(setRow2, 13).setValue(kwota);
//Logger.log(CurrentRow[7]);
}
}
}
}
解决方案
最有可能在for
循环中出现不一致,因为您在主循环和内部循环中使用相同的变量i
作为迭代器,结果值被覆盖。将第二个循环变量更改为j
(及其在内部循环中的引用),例如:
for (var i=0;i<AllValues.length;i++){
var CurrentRow = AllValues[i];
var Id1 = CurrentRow[0]; //col with ID Sheet1
var kwota = CurrentRow[7]; //col with rate Sheet 1
Logger.log(CurrentRow);
for (var j=0;j<AllValues2.length;j++){
var CurrentRow2 = AllValues2[j];
var Id2 = CurrentRow2[0]; //Col with ID Sheet2
var kwota2 = CurrentRow2[12]; //Col with rate Sheet2
//Logger.log(Id2);
//Set Values
if (Id1 == Id2){
var setRow2 = j + FirstRow2;
docelowysheet.getRange(setRow2, 13).setValue(kwota);
//Logger.log(CurrentRow[7]);
}
}
推荐阅读
- xml - XML 模式设计:在不违反唯一粒子属性的情况下选择相似序列?
- type-conversion - conv_integer() 与 to_integer()
- python - 不知道如何修复我的洗牌和交易的错误 python 程序 IndexError: list index out of range cant figgur
- c++ - 纹理不会出现 FreeGLUT
- node.js - NodeJs / Mongo:在模型中添加新文件
- rust - include_bytes 的运行时成本是多少!或include_str?
- r - 如何使用 R 获取括号/括号中的数字
- javascript - 如何为 Wordpress 自定义注册模板设置不同的角色
- unix - UNIX 中所有具有四位 UID 的用户
- c# - C# WPF 中的 WebHook 侦听器