2017-10-31 13 views
0

Also folgte ich dieses Tutorial und ein Telegramm bietet erstellt, die alle Nachrichten zu meiner Tabelle senden würden: https://www.youtube.com/watch?v=mKSXd_od4LgMit .appendRow mit Formeln

Der Punkt ist, dass ich eine Variable brauche nur - Text. Also änderte ich den Code ein wenig:

Ich habe auch Formeln für einige Bereiche (zB B1: B21).

Das Problem ist, dass das Skript meinen einzigen Eintrag zu A22 hinzufügen würde. Irgendwelche Ideen, wie man es richtig arbeiten lässt, d. H. "Text" in A1 setzen? Vielleicht gibt es eine Möglichkeit, diese Nachricht ('Text') als eine Zeichenfolge (Zelle), nicht eine ganze Zeile zu importieren?

Vielen Dank im Voraus.

Antwort

0

Um den Wert einer Zelle, die Sie brauchen, zu setzen diese Zelle als setValue() verwenden range (mit sheet.getRange()) & dann zu erhalten. z.B.

function setNewValueInLastRowOfColumnA(text){ 
    var sh = SpreadsheetApp.getActiveSheet(); 
    var lastRow = sh.getLastRow(); 
    var range = sh.getRange(lastRow + 1, 1); // getRange() can take 'A1' notation or (row, column) for a single cell 
    range.setValue(text); 
} 

Nun, wenn Sie den Wert von B # auf eine Formel festlegen möchten, die A # verarbeitet, müssen Sie eine andere range für die Formel Zelle & Verwendung erhalten range.setFormula() die Formel einzustellen. z.B.

var valueRange = sh.getRange(lastRow + 1, 1); 
var formulaRange = sh.getRange(lastRow + 1, 2); 
var formula = '=ROW() & " " & A' + (lastRow + 1); // which will make the value of B# '# your value' 
valueRange.setValue("your value"); 
formulaRange.setFormula(formula); 
+0

Danke, aber die erste Formel fügt noch eine neue Zeile hinzu. Ich habe bereits Formeln in Bereichen, und ich möchte sie behalten, aber das Skript sieht sie (zum Beispiel sieht es die Formel in D34) und denkt, dass diese Zeile bereits gefüllt ist und von der neuen, 35., beginnt. Irgendwelche Vorschläge? – Ololeg

+0

setValue ist der Schlüssel, wie in dieser Antwort erwähnt. – noogui

+0

@Ololeg, ich bin mir nicht sicher, was Sie jetzt fragen: Ihre Spezifikation ist unklar. Möchtest du einfach den Wert von A1 * überschreiben? Wenn Sie * keine * Zeilen hinzufügen möchten, verwenden Sie 'sheet.appendRow()' nicht - das fügt eine Zeile hinzu - verwenden Sie stattdessen 'range.setValue()' oder 'range.setValues ​​() ' –

Verwandte Themen