0
0 Produkty w koszyku

No products in the cart.

Od Excela 2019 została wprowadzona funkcja POŁĄCZ.TEKSTY, która w łatwy sposób umożliwia połączenie zwykłych tekstów, liczb, danych z zakresów dane, ale wcześniej nie było takiej funkcji, dlatego poniżej znajdziesz kod VBA, który taką funkcję tworzy i pozwala Ci z niej korzystać w Excelu.

vba-17-funkcja-polacz-teksty-przed-excelem-2016

Function POŁĄCZTEKST(ogranicznik As String, ignoruj_puste As Boolean _

, ParamArray tekst() As Variant) As String

    'Zmienne pomocnicze

Dim i As Integer, j As Integer

    'Pętla po wszystkich elementach parametru tekst

    'funkcja UBound wyznacza pierwszy wymiar parametru tekst

For i = 0 To UBound(tekst)

        'Sprawdzamy, czy aktualny (numer i) element parametru tekst jest zakresem

If TypeName(tekst(i)) = "Range" Then

            'Jeśli jest to musimy przejść po wszyskich jego komórkach

            'może być istotne, że VBA przechodzi od lewej do prawej, później góra dół

For j = 1 To tekst(i).Count

                'Jeśli ustawiłeś, że mają być ignorowane wartości puste to tu jest sprawdzane,

                'czyli argument ignoruj_puste musi być równy True

                'i komórka zakresu (tekst(i)(j)) musi być pusta

If Not (ignoruj_puste And tekst(i)(j) = "") Then

POŁĄCZTEKST = POŁĄCZTEKST & ogranicznik & tekst(i)(j)

End If

Next j

Else

            'Jeśli aktualny (numer i) element parametru tekst nie jest zakresem

            'to możemy go od razu połączyć, zakładam też, że nikt nie wpisze pustej wartości

            'więc nie sprawdzamy czy wartości wpisane są puste

POŁĄCZTEKST = POŁĄCZTEKST & ogranicznik & tekst(i)

End If

Next i

    'a na koniec wycinamy pierwszy ogranicznik, bo wstawia się na początku połączonego tekstu

POŁĄCZTEKST = Right(POŁĄCZTEKST, Len(POŁĄCZTEKST) — Len(ogranicznik))

End Function

Chcesz ze mną poznać możliwości VBA? Zobacz kiedy planowana jest następna edycja 30dniowego kursu online:
https://excelw30dni.pl/kategoria-produktu/szkolenia-vba/

Pozdrawiam
Adam Kopeć
Miłośnik Excela