2016-04-12 7 views
0

Komut dizilimin, bir hücreden gelen bir değere dayanarak bir satırı bir google e-tablosundan diğerine taşıması gerekiyor. Bunu yapamaz ve sanırım onEdit() işlevi yüzünden olduğunu ancak bunu çözemediğini düşünüyorum. Aynı e-tabloda farklı sayfalar için bir çözüm buldum, ancak farklı elektronik tablolarda değil. Kodum aşağıda.Satır, hücredeki bir değere dayanarak bir google e-tablosundan diğerine nasıl taşınır?

function onEdit(e) { 

    var sss = SpreadsheetApp.getActiveSpreadsheet(); 
    var ss = e.source.getActiveSheet(); 
    var r = e.source.getActiveRange(); 
    if(s.getName() == "source_sheet" && r.getColumn() == 7 && r.getValue() == "Pavlovo"){ 

    //Get full range of data 
    var SRange = ss.getRange(1, 3, 1, 5); 
    //get A1 notation identifying the range 
    var A1Range = SRange.getA1Notation(); 
    //get the data values in range 
    var SData = SRange.getValues(); 

    // tss = target spreadsheet 
    var tss = SpreadsheetApp.openById('1_t7BDCWgHJDip_cndzVashxLDQ_pVS6obi3I9TB_EJI'); 

    var ts = tss.getSheetByName('Vitosha'); // ts = target sheet 
    //set the target range to the values of the source data 
    ts.getRange(A1Range).setValues(SData); 
    } 

} 
+0

"Move" ile ne demek istiyorsun? Geçerli sayfadan silmek ve yeni sayfaya yapıştırmak ister misiniz? – iJay

+0

Tam olarak. Anne e-tablosundan kaldırmak ve yeni e-tabloya eklemek için! – StMit

+0

Denemenizde yanlış olan nedir? Satırdan çıkarmak istediğiniz sayfadan: sheet.deleteRow (1) –

cevap

0

Basit bir tetikleyici onEdit kullanıyorsunuz. Böyle tetikleyiciler izinsiz çalıştırmak ve bu nedenle bu şekilde birkaç restrictions tabidir:

Onlar bağlanmıştır dosyayı değiştirebilir, ama bu izin alınması gerekecek çünkü diğer dosyalara erişemez.

Bu nedenle, kodunuzda SpreadsheetApp.openById başarısız olur.

Çözüm: işlevi onEdit dışındaki bir işleve yeniden adlandırın ve düzenlemelerde çalışan bir installable trigger ekleyin. Yüklenebilir bir tetikleyici, siz (yani, onu oluşturan kullanıcı) sizin gibi çalışır ve bu nedenle erişebileceğiniz tüm dosyalara erişebilir.

+0

Teşekkürler, ancak kodu kurulabilir bir tetikleyici ile paylaşabilir misiniz? – StMit

İlgili konular