Ich habe eine Schleife, deren Zweck es ist, ein Google-Blatt zu durchlaufen, das als sheet
identifiziert und als ein zweidimensionales Array behandelt werden soll.Loop-Fehler in Google Tabellen
for (var i = 0; i < sheet.length; i++) {
var currentDataset = sheet.getRange(i+1, 1);
var currentData = currentDataset.getCell(1, 1).getValue();
Logger.log(String(currentData));
switch (String(currentData)) {
case string:
Logger.log("match");
for (var ii = 0; ii < 16; ii++) {
currentDataset.getCell(1, ii+1).setValue(data[ii]);
}
break;
default:
Logger.log("no match");
break;
}
}
Wenn die erste Zelle, currentData
, in der aktuellen Zeile, currentDataset
nach i
Übereinstimmungen in einem switch
Anweisung mit dem String-Wert string
, wäre eine weitere Schleife durchlaufen die entsprechenden Werte in der jeweiligen Zeile zu ersetzen, mit successiindeces von data
, ein Array. Wenn der aktuelle Zellenwert nicht übereinstimmt, wird die switch
Standard und brechen, so dass die Schleife erneut durchlaufen.
Wenn die Funktion aufgerufen wird, beginnt die Schleife das Blatt zu durchlaufen, wobei alle Nichtübereinstimmungen standardmäßig berücksichtigt werden. Wenn die Schleife jedoch die Übereinstimmung erreicht, wird sie übersprungen. Hier sind, was die Protokolle wie folgt aussehen:
[17-12-08 08:20:13:909 PST] Mismatch Value
[17-12-08 08:20:13:910 PST] default
*** THIS IS WHERE THE MATCH VALUE SHOULD APPEAR ***
[17-12-08 08:20:14:389 PST] Mismatch Value
[17-12-08 08:20:14:390 PST] default
ich den obigen Code neu geschrieben Variablen besser lesbar zu machen, wie es ursprünglich war in GAS, Kommentar bitte, wenn Sie ausführlichere Code benötigen, oder es finden sich hier (Zeilen 51 bis 62): https://github.com/organism/Scorecard-Builder/blob/master/src/scorecardBuilder.gs
Nun 1. aller 'var currentDataset = sheet.getRange (i + 1, 1);' ist ein Bereich mit nur einer Zelle, so dass Sie nicht iterieren können. Außerdem bin ich mir ziemlich sicher, dass der Grund, warum du Code machst, nichts ist, weil er immer in die Standardoption von dir schaltet, also bricht er jedes Mal und macht nichts. –
Wie sieht die erste Zeile Ihrer Tabelle aus? –
@LioraHaydont, 'currentData' soll nur die erste Spalte in der angegebenen Zeile sein. Zweitens durchbricht der Break nur die switch-Anweisung, nicht die Schleife, oder zumindest sollte sie es sein. Drittens ist die erste Zeile genau die gleiche wie alle anderen Zeilen, mit einer Zeichenfolge in der ersten Zelle. –