2016-03-19 18 views
0

benim fonksiyonları ile yardıma ihtiyacım Hücre Referans gelen Sac Oluşturma Script Dinamik Levha ve Adı:(Google API) should

  • Kopya gizli sayfa
  • olun hiçbir yinelenen adlandırılmış yaprak Dinamik
  • var
  • İşte

Ben bugüne kadar ne olduğunu, ama ben de cle değilim hücre başvurusunun tabakasının

  • göster kopya gelen kopya isim sözdizimlerinden ile ar: Fix:


    function checkSheetName(name) 
    { 
        var ss = SpreadsheetApp.getActiveSpreadsheet(); 
        var allSheets = ss.getSheets(); 
        var cSheets = ss.getNumSheets(); 
    
        for(i = 1; i < cSheets; i++) 
        { 
        var currentSheetName = allSheets[i].getName(); 
        if(currentSheetName == name); 
        return true; 
        } 
        return false; 
    } 
    

    function createNextMonth() 
    { 
        var ss = SpreadsheetApp.getActiveSpreadsheet(); 
        var tz = ss.getSpreadsheetTimeZone(); 
        var allSheets = ss.getSheets(); 
        var dateSheet = ss.getSheetByName("Start Date:"); 
        var currentSheet = ss.getActiveSheet(); 
        var startRange; 
    
        // Check where to get the cell references from 
        if(dateSheet != currentSheet) 
        startRange = currentSheet.getRange(4,7); 
        else 
        startRange = currentSheet.getRange(4,7); 
    
        var startDate = new Date(startRange.getValue()); 
        // Format date to MONTH (YYYY) 
        var newSheetName = Utilities.formatDate(startDate, tz, "yyyy-MMMMM-dd'T'HH:mm:ss'Z'"); 
        if(!newSheetName) 
        // Error making name 
        return false; 
    
        if(!checkSheetName(newSheetName)) 
        // Error duplicate 
        // Inform user 
        return false; 
    
        // Locate the template sheet 
        var templateSheet = ss.getSheetByName("TEMPLATE"); 
        if(!templateSheet) 
        // Error missing 
        // Couldn't find template 
        return false; 
    
        // Set the active sheet to the template sheet 
        ss.setActiveSheet(templateSheet); 
        // Duplicate active sheet 
        ss.duplicateActiveSheet(); 
    
        // Unsure how to locate duplicated sheet 
    
        ss.renameActiveSheet(newSheetName); 
    
        // Unsure how to set new sheet cell B3 to startDate 
    
        return true; 
    } 
    

    Güncelleme (if ifadeleri yerine '==' arasında '=' Yanlış): Sorun öyle görünüyor ki söz unuttum Doğru bir tarih değeri almamayı veya doğru hücreyi almamayı.

    Güncelleştirme 2: Düzeltilen basit sözdizimi hatası ile ilgili sorun.

  • cevap

    1

    İşte iyi bir başlangıç ​​olur. yinelenen bir levha olarak kontrol etmesini ve aktif olarak yeni bir kopyasını ayarı (kredi https://ctrlq.org/code/19973-duplicate-sheet-google-spreadsheets):

    var bb = ss.getSheetByName("sheetnamehere"); 
        var newsheetname = bb.getRange("j6"); 
        var newsheetvalue = newsheetname.getValue(); 
        sheet.setname(newsheetvalue) 
    
    :

    böyle
    function cloneGoogleSheet() { 
    
        var name = "labnol"; 
        var ss = SpreadsheetApp.getActiveSpreadsheet(); 
        var sheet = ss.getSheetByName('Template').copyTo(ss); 
    
        /* Before cloning the sheet, delete any previous copy */ 
        var old = ss.getSheetByName(name); 
        if (old) ss.deleteSheet(old); // or old.setName(new Name); 
    
        SpreadsheetApp.flush(); // Utilities.sleep(2000); 
        sheet.setName(company); 
    
        /* Make the new sheet active */ 
        ss.setActiveSheet(sheet); 
    
    } 
    

    şey adı olarak bir hücre değeri kullanarak yardımcı olabilir