2016-05-03 4 views
0

Ich verwende derzeit ein modifiziertes Skript, mit dem ich eine ganze Zeile aus Blatt # 1 kopieren kann, eine neue Zeile am Anfang von Blatt 2 erstellen, die kopierte Zeile einfügen Dieses Blatt, und löschen Sie die alte Zeile aus Blatt # 1. Dies wird oft von vielen Benutzern im Laufe des Tages getan. Die Funktion ist onEdit.So entfernen Sie bedingte Formatierung in Blättern mit Skript

Dies ist das Skript:

function onEdit(e) { 
    var ss = e.source; 
    var activatedSheetName = ss.getActiveSheet().getName(); 
    var activatedCell = ss.getActiveSelection(); 
    var activatedCellRow = activatedCell.getRow(); 
    var activatedCellColumn = activatedCell.getColumn(); 
    var activatedCellValue = activatedCell.getValue(); 

    var URGENCE = ss.getSheetByName("List"); // source sheet 
    var COMPLET = ss.getSheetByName("Comp"); // target sheet 

    // if the value in column K is "x", move the row to target sheet 
    if (activatedSheetName == URGENCE.getName() && activatedCellColumn == 11 && activatedCellValue == "x") 
    { 
    COMPLET.insertRows(2,1);// insert a new row at the second row of the target sheet 
    var rangeToMove = URGENCE.getRange(/*startRow*/ activatedCellRow, /*startColumn*/ 1, /*numRows*/ 1, /*numColumns*/ URGENCE.getMaxColumns()); 
    rangeToMove.moveTo(COMPLET.getRange("A2"));   
    URGENCE.deleteRows(activatedCellRow,1); // delete row from source sheet 
    } 
} 

Kürzlich dies mein Blatt Absturz wurde. Jedes Mal, wenn jemand ein "x" in Spalte K setzt, wird das Blatt stehen bleiben und die meiste Zeit wird es abstürzen und Chrom wird die Seite töten.

Ich könnte falsch liegen, aber das Problem, das ich vermute, ist, dass die meisten Zeilen in Blatt # 1 bedingte Formatierung haben. Wenn die Zeile kopiert wird, kopiert sie auch die bedingte Formatierung. Dies führt dazu, dass mein Blatt 2 hunderte sich wiederholende bedingte Formatierungen aufweist: Dieses Blatt ist SEHR langsam zu öffnen. Es könnte auch daran liegen, dass dieses Dokument mit ungefähr 30 Leuten geteilt wird, die es ansehen und es sehr oft bearbeiten: vielleicht ist onEdit hier nicht die richtige Funktion?

Gibt es ein einfaches Skript, das ich meiner Funktion hinzufügen könnte, um die bedingte Formatierung der eingefügten Zeile zu entfernen? Ich brauche die bedingte Formatierung in meinem Blatt 2 nicht und aus irgendeinem Grund kann ich nirgends eine Antwort finden.

Antwort

1

diese Funktion from here.

gefunden

Clear()

das Blatt Formatierung löscht, während Inhalte zu erhalten. Die Formatierung bezieht sich darauf, wie die Daten so formatiert sind, wie es durch Auswahlmöglichkeiten im Menü "Format" des Menüs zulässig ist (z. B. fett, kursiv, bedingte Formatierung) und nicht Breite oder Höhe der Zellen.

Beispielcode:

function testKillFormatting (nameOfSheet) { 

    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheetByName(nameOfSheet); 
    sheet.clearFormats(); 

    } 
+0

könnte ich hinzufügen, das zum Ende meiner Funktion oder soll ich halten, ist als eine separate Funktion, die ich zu einem anderen Zeitpunkt laufen würde? – Seb

+0

Ja, dies kann als Teil der Funktion oder als separate Funktion verwendet werden. –