Werbung

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Nichtausführung von Scriptzeilen in google apps script

Dieses Thema im Forum "Sonstige Programmiersprachen" wurde erstellt von helmut.em, 6. März 2018.

  1. helmut.em

    helmut.em New Member

    Hallo,

    ich bin Anfänger in dieser Sprache und stolpere über ein scheinbar einfaches Problem:

    In einem spreadsheet-Bereich gibt es markierte rote (zusammenhängende) Zellen, in denen sich schriftliche Eintragungen befinden.
    Dieses Sheet soll als Exceldatei in einer Email versendet werden. Vorher muss die Schrift sichtbar (=weiß) gemacht werden und nach dem Absenden wieder rot wie der Hintergrund, also unsichtbar.

    Mein Script ist:

    Code (Text):
    Quelltext kopieren
    1.  
    2. // sendet das aktuelle Sheet als Excel-Datei an den LFD    
    3. function getGoogleSpreadsheetAsExcel()
    4. {
    5.   // macht die Schriftfarbe im gesamten Bereich sichtbar
    6.   var range = SpreadsheetApp.getActiveSheet().getRange("B5:BZ1000");
    7.   var color="#ffffff";
    8.   range.setFontColor(color);
    9.      
    10.   //sendet die Email
    11.   var ss = SpreadsheetApp.getActive();
    12.   var url = "https://docs.google.com/feeds/download/spreadsheets/Export?key=" + ss.getId() + "&exportFormat=xlsx";
    13.   var params =
    14.     {
    15.     method      : "get",
    16.     headers     : {"Authorization": "Bearer " + ScriptApp.getOAuthToken()},
    17.     muteHttpExceptions: true
    18.     };
    19.    
    20.    var blob = UrlFetchApp.fetch(url, params).getBlob();
    21.    var now = new Date();
    22.    blob.setName(ss.getName() + " " + now +".xlsx");
    23.    MailApp.sendEmail("hstauche@versanet.de", "Aktuelles Google Sheet als Excel-Datei", "Die Excel-Datei befindet sich im Anhang dieser Email.", {attachments: [blob]});
    24.  
    25.    // macht vor dem Beenden der Funktion den Text unsichtbar  
    26.    var range = SpreadsheetApp.getActiveSheet().getRange("B5:BZ1000");
    27.    var color="#ff0000";
    28.    range.setFontColor(color);
    29. }
    30.  
    Während der letzte Abschnitt (Zeilen 25...28: unsichtbar machen) tadellos ausgeführt wird, funktioniert der erste nicht (Zeilen 5...8: sichtbar machen). Da ich völlig analog geschrieben habe, habe ich keine Erklärung.

    Danke im Voraus für Aufklärung und FG
    helmut.em
  2. coding-board

    coding-board Member

    Werbung
  3. helmut.em

    helmut.em New Member

    Wäre es denkbar, dass einer(r) von euch mein Script mal ausprobiert.
    * ein eigenes Google Spreadsheet öffnen
    * im Bereich B5:BZ1000 einigen zusammenhängenden Zellen einen roten Hintergrund geben ("#ff0000").
    * in den roten Bereich etwas mit weißer Schrift schreiben, in eine beliebige Zelle
    * die Schriftfarbe danach ebenfalls rot ("#ff0000") machen, so dass man die Schrift nicht mehr sieht
    * mein Script testen (vorher meine Mailadresse durch eure eigene ersetzen)

    Es soll Folgendes passieren:
    1. Die rote Schrift soll weiß werden.
    2. Das Sheet soll als Excel-Datei an eure Mailadresse versendet werden, und zwar mit weißer Schrift.
    3. Die Schrift im google-sheet soll nach dem Versenden rot sein.

    2. und 3 funktionieren, 1. nicht; 2. funktioniert aber nur, wenn die Schrift vorher schon weiß ist.
    Sprich, die Zeilen 5 bis 8 werden nicht ausgeführt.

    Danke, eine Hilfe wäre wirklich wichtig. Ich hab hier niemanden, der sich damit auskennt.
    FG helmut.em