Google Sheets / Javascript -> Schleife durch array, und legen Sie die Werte in die Zellen
Ich bin neu in der Programmierung und ich habe eine einfache Frage, aber ich kämpfen, um die Antwort zu finden. Ich möchte dynamisch überschreiben von Zellen von A1 auf, bis die Länge des Arrays. Dies ist die zweite for-Schleife bin ich mit zu kämpfen. Die Kombination von ("A" & ii) für den Bereich doesnt look "Professionell" 🙂
Vielen Dank für Ihre Hilfe.
function selectmyagency() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var agencynames = ss.getRange("B8:B42").getValues();
var myagency = ss.getRange("C3").getValue();
var arrayLength = agencynames.length;
for (var i = 0; i < arrayLength; i++) {
if(agencynames[i] == myagency){
//doNothing
} else {
agencynames[i] = ".";
}//endif
}//endfor
//overwrite Cell in Spreadsheet
for (var ii = 0; ii < agencynames.length; ii++) {
SpreadsheetApp.getActiveSheet().getRange("A"+ii).setValue(agencynames[ii]);
//SpreadsheetApp.getActiveSheet().getRange("A9").setValue(agencynames[ii]);
//SpreadsheetApp.getActiveSheet().getRange("A10").setValue(agencynames[ii]);
}
}//endfunction
- Hey Andre, das problem, das Sie haben, dass dies nicht funktioniert, oder, dass es einfach nicht richtig Aussehen? Wenn Sie wollen einfach nur leer aus dem gesamten
agencyNames
Bereich, kann ich eine Antwort für mehr effizient. - um die Frage zu diesem Thema, zeigen Sie uns, was nicht funktioniert.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Anstatt einer Schleife durch das array und die Einstellung des ranges Wert einer Zelle zu einem Zeitpunkt, können Sie dies in einem batch-Betrieb in etwa so:
ss.getRange("B8:B42").setValues(agencynames);
Tun Sie dies nach der änderung der
agencynames
array, dies setzt alle Werte aus diesem Bereich zu entsprechen, das array solange das array und die Auswahl die gleiche Größe haben. Es ist generell abgeraten, um Anrufe zu tätigen, um einen Dienst in einer Schleife, wenn Sie verwenden können batch-Betrieb, für die Aufführungen und readabilities Willen.Weitere Informationen finden Sie auf der Apps Script Best Practices
Edit: Dein veränderter code:
Ein paar mehr Hinweise:
getValues()
Sie bekommen ein array von arrays nicht ein array von Werten, auch wenn es nur eine einzige Spalte. dh.[["value"],["value"],["value"]]
statt["value","value","value"]
. Bei der Einstellung oder, um die Werte dieses Arrays, die Sie wahrscheinlich verwenden wollenagencynames[i][0]
stattagencynames[i]