2017-09-13 104 views
1

我正尝试使用Google Apps脚本在两个Google电子表格之间移动数据。Google Apps脚本:在电子表格之间移动数据

名为Ex_ID的电子表格每个员工都有一张表和一行,每行有六个重要值,包括一个id号和五个数据值。

名为CR_ID的电子表格为每个员工都有一张不同的表,每张表都有一个ID号和五个单元,我需要输入数据。

我正在尝试编写一个脚本,将数据值从Ex_ID移动到ID值匹配的CR_ID。 (注:由于我还在想看看代码是如何工作的,我限制了例如五个数据值中的一个,我只对三名员工测试它。)

function myFunction() { 
    var CR_ID = "1BbAmoSsS_2-nvOxv_l5gZ8ftXclD5muWs0ZAmkDUR-Y"; 
    var ssCR = SpreadsheetApp.openById(CR_ID); 
    var sCR = ssCR.getSheets(); 
    var Ex_ID = "1lkpXdWdbfe8Wkj1RGQOb-pWjEQe41hstKj2i4TxMQd8"; 
    var ssEx = SpreadsheetApp.openById(Ex_ID); 
    var sEx = ssEx.getSheetByName('Sheet1'); 
    for (var i = 2; i = 4; i++) { 
    //Get id value from Ex_ID 
    var ExCell = sEx.getRange(i, 2).getValue(); 
    for (var j = 0; j = 2; j++) { 
     var sheet = sCR[j]; 
     //Get id value from CR_ID 
     var val = sheet.getRange(1, 7).getValue(); 
     if (ExCell[i] == val[j]) { 
     var ExWrite = sEx.getRange(i, 11).getValue(); 
     sheet.getRange(3, 20).setValue(ExWrite); 
     }  
    } 
    } 
} 

最佳,

梅恩德拉

回答

1

我不知道你的数据是如何组织的,并要它们放在表,但我会尝试这样的事:

function myFunction() 
{ 
    var ess = SpreadsheetApp.openById("1BbAmoSsS_2-nvOxv_l5gZ8ftXclD5muWs0ZAmkDUR-Y"); 
    var es = ess.getSheets(); 

    var dss = SpreadsheetApp.openById("1lkpXdWdbfe8Wkj1RGQOb-pWjEQe41hstKj2i4TxMQd8"); 
    var ds = dss.getSheetByName('Sheet1'); 
    var dr = ds.getDataRange(); 
    var dA = dr.getValues(); 
    for(var i=1;i<dA.length;i++)//started with 1 assuming that you have a header. 
    { 
     var row=dA[i];//loop through rows of employee data I will assume data to be in this ID,DataValue1,DataValue2,DataValue3,DataValue4,DataValue5 
     for(var j=0;j<es.length;j++) 
     { 
     if(row[0]==es[j].getSheetName())//checking the ID value assuming it is row[0]; 
     { 
      var sht=es[j]; 
      sht.getRange('D1').setValue(row[1]);//DataValue1 
      sht.getRange('D2').setValue(row[2]);//DataValue2 
      etc... 
     } 

     } 
    } 

} 
+0

谢谢!为了使它工作,我不得不修改我的数据一点点。最初我在ess中使用了员工姓名作为工作表名称,然后我将这些id存储在工作表内(在单元格G1中)。我修改了数据,以便dss在我用来存储id的地方有员工姓名。由于表不能有相同的名称,我应该罚款。谢谢! –

相关问题