2016-09-12 2 views
0

im auf bestimmte Zellen in sheet2 per Taste auf Klick kopieren Werte von bestimmten Zellen in sheet1 versuchen, und dies ist mein CodeCant finden CopyTo in googlesheets

function CopyPaste() { 
    var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');    
    var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet2'); 
    sheet1.getRange('G2').getValue().copyTo(sheet2.getRange('A45')) ; 
    //sheet1.getRange('I2').getValue().copyTo(sheet2.getRange('B45')) ; 
    //sheet1.getRange('K2').getValue().copyTo(sheet2.getRange('C45')) ; 
} 

Eigentlich Im kopieren 3 auf einmal versuchen, aber jetzt Ich will nur sehen, warum es nicht funktioniert. Ich bekomme diesen Fehler

TypeError: Can not find function in object copyTo 

irgendwelche Hilfe pls?

INFO: mein G2 hat Wert berechnet. Ich bin da, es gibt Formel in dieser Zelle und will nur Wert nicht die Formel bekommen.

EDIT Wenn es möglich, diese drei Werte in der gleichen Zeit zu kopieren

besser sein wird

Antwort

1

getValues() nur ein 2D-Array zurückgibt.
copyTo arbeitet auf Bereichsobjekte und kann diese durch den optionalen Parameter options anpassbare Möglichkeiten handhaben.

function CopyPaste() { 
    var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');    
    var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet2'); 
    sheet1.getRange('G2').copyTo(sheet2.getRange('A45')) ; 
    // sheet1.getRange('I2').copyTo(sheet2.getRange('B45')) ; 
    // sheet1.getRange('K2').copyTo(sheet2.getRange('C45')) ; 
} 

Wenn Sie nur die Werte wollen, nicht die Formel es zu erzeugen müssen Sie die Optionen Parameter liefern:

sheet1.getRange('G2').copyTo(sheet2.getRange('A45'), {contentsOnly: true}); 

Alterantively an dieser Stelle die Funktion umschreiben kann:

function CopyPaste() { 
    var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');    
    var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet2'); 

sheet2.getRange("A45:C45").setValues([[ 
    sheet1.getRange('G2').getValue(), 
    sheet1.getRange('I2').getValue(), 
    sheet1.getRange('K2').getValue()]]) 
} 
+0

Vielen Dank für Ihre schnelle Antwort, die Sie getan haben, als Sie den Formelwert in B45 Blatt2 mit der Fehlermeldung 'Circular dependence detected.' erhalten haben. Ich will nur den Wert. –

+0

und kann alle diese 3 Werte zur gleichen Zeit kopieren? –

+0

Bitte überprüfen Sie meine aktualisierte Antwort. Da die drei Quellzellen nicht benachbart sind, müssen Sie ihre Werte separat erhalten (oder den gesamten Bereich abfragen und entfernen, was dazwischen liegt). –