Ich habe ein Blatt, das eine Vorlage (KundJobbTemplate) ist. Jedes Mal, wenn der Benutzer eine Zelle aktualisiert (F1), sollte eine Kopie des Vorlagenblatts (KundJobbTemplate) mit dem Namen "Kund_xxxx: Jobb_xxxx" erstellt werden.Falscher Name auf Blatt onEdit
Dies funktioniert das erste Mal. Wenn Sie das neu erstellte Blatt "Kund_xxxx: Jobb_xxxx" nicht manuell umbenennen und ein neues Blatt erstellen, indem Sie die Zelle F1 im Vorlagenblatt (KundJobbTemplate) aktualisieren, erhält das neue Blatt anstelle von "Kopie von Kund_xxxx: Jobb_xxxx" den Namen "Kopie von KundJobbTemplate" ".
So wie kann ich ein neues Blatt onEdit erstellen (Benutzer eine Zelle aktualisieren) und jedes Mal, wenn die Kopie der Vorlage Blatt „KundJobbTemplate“ wird den Namen bekommen „Kund_xxxx: Jobb_xxxx“ und wenn Blatt bereits es existieren einen Namen geben „Kopie von Kund_xxxx: Jobb_xxxx“ usw.
Dies ist mein Code:
function onEdit(event)
{
var myNewSheetName = "Kund_xxxx:Jobb_xxxx";
var changedCell= event.source.getActiveRange().getA1Notation();
if (changedCell == 'F1') {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('KundJobbMall').copyTo(ss);
SpreadsheetApp.flush(); // Utilities.sleep(2000);
sheet.setName(myNewSheetName);
ss.setActiveSheet(sheet);
}
}
Thx, das hat es geschafft :)! – martin
Benutzt nr Blätter als eindeutigen String: 'var nrOfSheets = SpreadsheetApp.getActiveSpreadsheet(). GetNumSheets(); var randomString = nrOfSheets.toString(); ' – martin