2017-09-13 4 views
1

Ich versuche Google Apps Script zu verwenden, um Daten zwischen zwei Google-Tabellen zu verschieben.Google Apps Script: Daten zwischen Tabellen verschieben

Die Tabelle mit der Bezeichnung Ex_ID enthält für jeden Mitarbeiter ein Blatt und eine Zeile. Jede Zeile enthält sechs wichtige Werte einschließlich einer ID-Nummer und fünf Datenwerte.

Die Tabelle CR_ID hat ein anderes Blatt für jeden Mitarbeiter und jedes Blatt hat eine ID-Nummer und fünf Zellen, wo ich die Daten eingeben muss.

Ich versuche, ein Skript zu schreiben, das Datenwerte von Ex_ID nach CR_ID verschiebt, wo die ID-Werte übereinstimmen. (Anmerkung: Da ich noch zu sehen versuchen, wie der Code arbeiten, kann ich das Beispiel einer der fünf Datenwerte begrenzt und teste ich es nur auf drei Mitarbeiter.)

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); 
     }  
    } 
    } 
} 

Best,

Mayne Dela

Antwort

1

ich weiß nicht, wie Sie Ihre Daten organisiert ist und wo man sie auf die Blätter setzen wollen, aber ich würde so etwas wie dies versuchen:

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

Thank you! Damit es funktioniert, musste ich meine Daten ein wenig ändern. Ursprünglich habe ich die Namen der Angestellten für Blattnamen in Ess verwendet und dann habe ich die ID in den Blättern gespeichert (in Zelle G1). Ich habe die Daten so geändert, dass dss Namen von Angestellten hat, wo ich die ID gespeichert habe. Da Blätter nicht den gleichen Namen haben können, sollte ich damit einverstanden sein. Vielen Dank! –

Verwandte Themen