2016-04-12 7 views
0

I (und Fehler) versuchen Google Apps Script (JavaScript) zu verwenden, die folgenden zu tun:Mehrere jede Zelle innerhalb der Reichweite

  1. kopierten Werte von einem Blatt zum anderen (in Betrieb)

  2. Wenn Zelle 'G3' auf 'Cal' Blatt "Dollars" anzeigt, dann möchte ich alle Zellen innerhalb des Bereichs von 'Kaufen' (die in Zeile 11 eingefügt werden) mit Convertnum (das einen Wert von 10 hat) multiplizieren. z.B. Wenn "Dollar" in G3 ist und "1000" in jede Zelle von C2 nach unten eingefügt wurde, dann möchte ich mehrere alle diese Zellen (von C2 nach unten) um den Wert in H3 (Blatt 'Cal'), was 10 ist. ** (Funktioniert nicht) **

Sorry, wenn dies nicht so gut erklärt wird. Ich habe es 24 Stunden lang versucht und das ist das Beste, was ich mir ausgedacht habe. Kann jemand vorschlagen, wie ich das überwinden kann?

ps Ich bin sehr neu in JavaScript.

function PasteValues() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var SKU = ss.getRange('lanparte!A8:A160'); 
    var Buy = ss.getRange('lanparte!I8:I160'); 
    var Convert = ss.getRange('Cal!G3'); 
    var Convertnum = ss.getRange('Cal!H3'); 
    var Sell = ss.getRange('Output!C2:C160'); 

    SKU.copyTo(ss.getRange('Output!A2'), {contentsOnly: true}); 
    Buy.copyTo(ss.getRange('Output!B2'), {contentsOnly: true}); 
    Buy.copyTo(ss.getRange('Output!C2'), {contentsOnly: true}); 

    if (Convert == "Dollars") { 
    for each (var cell as Sell) { 
     var timescell = Number(cell)*Number(Convertnum); 
     Sell.setValue(timescell); 
    } 

    } 

} 

Antwort

0

Manchmal ist es bequemer range in array in Google Apps Script zu konvertieren.

schlage ich ändern Linien mit Convert, Convertum:

// add .getValue() to range object 
    var Convert = ss.getRange('Cal!G3').getValue(); 
    var Convertnum = ss.getRange('Cal!H3').getValue(); 

Zweite proplem ist Ihre for each Schleife: soweit ich weiß, diese Konstruktion ist ungültig. Sie können dieses Stück Code verwenden:

if (Convert == "Dollars") { 
    // convert range into array 
    var NewVals = Sell.getValues(); 

    // multiply 
    for (var i = 0; i < NewVals.length; i++) { 
     NewVals[i][0] *= Convertnum; 
    } 

    // set new values 
    Sell.setValues(NewVals); 
    } 
+0

Sie sind mein Held! Vielen Dank!! –

+0

'for each' ist keine Sache, aber [' forEach() 'ist] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach). – Mogsdad

Verwandte Themen