1

Ich habe ein wenig an Google Scripts gearbeitet, aber ich kann nicht die Lösung für mein Problem finden. Was ich versuche zu tun ist, multiplizieren Sie den Inhalt von zwei Zellen in einer Tabelle zusammen mit meiner Funktion calculateRates(). Hier ist mein Code:Google Scripts, die keine Nummer zurückgeben

/** 
@customFunction 
*/ 
function calculateRates(hourDecimal, personRate) { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); //Access spreadsheet 
    var sheet = ss.getSheets()[0]; //Access sheet 

    var range = sheet.getDataRange(); //Access all cells 

    var values = range.getValues(); //Call to get value of certain cell 

    var totalEarned = hourDecimal * personRate; 
    Logger.log(totalEarned); 

    return totalEarned; 
} 

Das Problem daran ist, dass, nachdem ich zwei Zellen bezeichnen zu multiplizieren zusammen als die Parameter der Funktion auf der Tabelle gibt es ein Fehler, der lautet: „Ergebnis war keine Zahl.“ Ich weiß, ich habe die Funktion in meiner Tabelle korrekt, so dass das nicht das Problem sein kann ..... Irgendwelche Ideen? Danke für Ihre Hilfe!

+0

Rufen Sie die Funktion über die Kalkulationstabelle der Kalkulationstabelle auf? Beispiel in einer Zelle, die Sie eingeben "= berechnenRates (B1, C1)"? Außerdem multiplizieren Sie nur die Zellen, die Sie als Argumente gesetzt haben, verwenden Sie wirklich nicht die ersten 4 Zeilen Ihrer Funktion oder gibt es mehr Code? Und schließlich werden diese Werte manuell eingegeben oder kommen durch eine Funktion zustande? – ocordova

+0

Ja, ich rufe die Funktion aus der Tabelle an. Es gibt mehr Code, aber in einer separaten Funktion, die funktioniert, aber mit dieser Funktion habe ich Probleme. Tut mir leid, ich bin ein Anfänger, also weiß ich nicht, ob ich alle Tabellenobjekte zurückrufen muss, denke ich. Wie bei den Werten wird ein Wert manuell eingegeben, während der andere als Ergebnis einer Funktion kommt. – jgnibo

Antwort

3

Dieser Fehler tritt auf, wenn Sie versuchen, Berechnungen mit Werten durchzuführen, die nicht alle Zahlen sind, z. B. eine Zahl und einen String.

Google Tabellen speichern Daten in Abhängigkeit von dem Wert der Zelle, können die Werte von Typ seine Number, Boolean, Date oder String (Leerküvetten einen leeren String zurück). Wenn diese Werte von Custom Functions verwendet werden, behandelt Apps Script sie als den entsprechenden Datentyp in JavaScript.

Sie müssen sicherstellen, dass die Werte der Zellen Zahlen sind, berücksichtigen, dass wenn die Zelle Leerzeichen oder andere nicht numerische Zeichen wie "2 2" oder enthält, wird es als String behandelt und Sie müssen trimmen oder Extrahieren Sie diese Sonderzeichen vor jeder Berechnung.

+0

Scheint, jetzt zu arbeiten ..... konvertiert den Inhalt der Zelle zu schweben und das hat den Trick gemacht. Vielen Dank! – jgnibo