Funkcje arkusza

Z Henryk Dąbrowski
Przejdź do nawigacji Przejdź do wyszukiwania
05.12.2020



Wstawianie nowego arkusza

Niekiedy potrzebujemy, aby procedura wstawiła do skoroszytu nowy arkusz i sama dobrała nazwę arkusza różną od nazw już istniejących arkuszy. Zamieszczona niżej procedura rozwiązuje ten problem. Jeśli nie podamy parametru, to wstawianemu arkuszowi zostanie nadana pierwsza wolna nazwa z ciągu: "Arkusz", "Arkusz1", "Arkusz2", "Arkusz3", ... Jeżeli procedura zostanie wywołana z parametrem, to zostanie stworzony analogiczny ciąg nazw, ale zamiast słowa "Arkusz" będzie użyty tekst podany jako parametr.

Sub WstawNowyArkusz(Optional NazwaArkusza as String)
    Dim sName as String
    Dim k as Long
    If IsMissing(NazwaArkusza) Then
        sName = "Arkusz"
    Else
        sName = NazwaArkusza
    End If
    If NOT ThisComponent.getSheets().hasByName( sName ) Then 'sprawdza czy arkusz o podanej nazwie już istnieje
        ThisComponent.getSheets().insertNewByName( sName, 0 ) 'wstawia nowy arkusz na pozycję 1 (z indeksem 0)
        Exit Sub
    End If
    For k = 1 to 10000 'maksymalna liczba arkuszy
        If NOT ThisComponent.getSheets().hasByName( sName & k ) Then 'sprawdza czy arkusz o podanej nazwie już istnieje
            ThisComponent.getSheets().insertNewByName( sName & k, 0 ) 'wstawia nowy arkusz na pozycję 1 (z indeksem 0)
            Exit For
        End If
    Next k
End Sub
Sub Arkusze1()
    Call WstawNowyArkusz()
    Call WstawNowyArkusz("Wyniki")
End Sub





LibreOffice Calc – makra                   Strona główna