Własna funkcja w Excelu

Kolejna, po wpisie o eksporcie danych, notka o Excelu.

Zauważyłem, że ostatnio sporo czasu traciłem na eksporcie danych z Excela do ustalonego z góry formatu tekstowego (wartości z poszczególnych kolumn rozdzielone backslash’em). Gdy kolumn było mało (2-3) wpisanie formuły:

=A2&"\"&B2

zajmowało chwilę, gorzej gdy ilość kolumn zaczęła przekraczać 30..

Po krótkiej chwili googlania i nieco dłuższej własnych eksperymentów wydumałem taką funkcję (ostrzeżenie dla czytelników znających Visual Basic’a – widok tego kodu może powodować salwy śmiechu, żeby nie było, że nie ostrzegałem. Jest to moje pierwsze makro i jestem z niego bardzo dumny 😉 ):

Function Concatenate(cells As Range, delimiter As String) As String
    Dim str As String
    str = ""
    For Each cell In cells
        str = str & cell & delimiter
    Next cell
    Concatenate = str
End Function

Otwarcie edytora Visual Basic w Excelu: Alt + F11 ( < 1 s), napisanie funkcji (~5 min), zamknięcie edytora: Alt + Q (< 1 s), zaoszczędzony na przyszłość czas (bezcenne). Parafrazując reklamę:

Są rzeczy, których nie da się kupić. Wszystkie inne możesz napisać sobie sam.

Screen z użycia funkcji:

Użycie funkcji Concatenate

Wynik działania funkcji:

Wynik działania funkcji Concatenate

Be Sociable, Share!
czoper opublikowano dnia 2010-9-10 Kategoria: Programowanie | Tagi:, ,

Jedna odpowiedź Zostaw komentarz

    Zostaw odpowiedź

    (Ctrl + Enter)