VBA Concatenate

Konkatenacja oznacza łączenie dwóch wartości lub dwóch ciągów razem, podobnie jak w programie Excel, którego używamy & lub znamy również jako operator ampersand do łączenia, dwa łączone dwa ciągi, których używamy & operator, taki jak Ciąg 1 i Ciąg 2, teraz jest ważna rzecz do zapamiętania i to jest podczas korzystania z operatora &, musimy zapewnić spacje lub VBA uzna to za długie.

Ciągi konkatenacji VBA

VBA Concatenate to jedna z tych rzeczy, których używaliśmy do łączenia dwóch lub więcej wartości komórek wartości razem, jeśli powiem prostym językiem, że łączy, to jest łączenie dwóch lub więcej wartości razem, aby uzyskać pełną wartość.

W programie Excel mamy funkcję o nazwie CONCATENATE, która wykona połączenie razem dwóch lub więcej wartości lub dwóch lub więcej wartości komórek.

Ale w VBA nie mamy żadnej wbudowanej funkcji do łączenia dwóch lub więcej wartości razem. W rzeczywistości nie mamy nawet dostępu do klasy funkcji arkusza, aby uzyskać dostęp do funkcji CONCATENATE VBA jako funkcji arkusza.

Jak połączyć ciągi znaków w VBA?

Jeśli nie mamy żadnej wbudowanej funkcji do łączenia wartości, a nawet funkcja arkusza nie jest zintegrowana z VBA. Teraz wyzwaniem jest, jak połączyć wartości?

Mimo że nie ma wbudowanych funkcji, nadal możemy łączyć je w języku VBA za pomocą symbolu „ampersand” (&).

Jeśli regularnie śledzisz nasze posty, często używamy symbolu ampersand (&) w naszym kodowaniu.

Na przykład, jeśli masz osobno imię i nazwisko, możemy połączyć te dwa i nadać mu pełne imię i nazwisko. Wykonaj poniższe kroki, aby samodzielnie napisać kod makra VBA.

Krok 1: Przejdź do Edytora Visual Basic i utwórz podprocedurę VBA.

Krok 2: Zdefiniuj trzy zmienne jako ciąg .

Kod:

 Sub Concatenate_Example () Dim First_Name As String Dim Last_Name As String Dim Full_Name As String End Sub 

Krok 3: Teraz przypisz imię i nazwisko do zmiennej.

Kod:

 Sub Concatenate_Example () Dim First_Name As String Dim Last_Name As String Dim Full_Name As String First_Name = "Sachin" Last_Name = "Tendulkar" End Sub 

Krok 4: Teraz połącz te dwie nazwy ze zmienną Full_Name za pomocą zmiennej ampersand.

Kod:

 Sub Concatenate_Example () Dim First_Name As String Dim Last_Name As String Dim Full_Name As String First_Name = "Sachin" Last_Name = "Tendulkar" Full_Name = First_Name i Last_Name End Sub 

Krok 5: Teraz pokaż wartość zmiennej Full_Name w oknie komunikatu.

Kod:

 Sub Concatenate_Example () Dim First_Name As String Dim Last_Name As String Dim Full_Name As String First_Name = "Sachin" Last_Name = "Tendulkar" Full_Name = First_Name i Last_Name MsgBox Full_Name End Sub 

Teraz uruchom kod, który otrzymamy w oknie komunikatu.

Problem z tym pełnym imieniem polega na tym, że nie dodaliśmy separatora imienia i nazwiska, podczas gdy łącząc imię i nazwisko, łączymy również znak spacji.

Kod:

 Sub Concatenate_Example () Dim First_Name As String Dim Last_Name As String Dim Full_Name As String First_Name = "Sachin" Last_Name = "Tendulkar" Full_Name = First_Name & "" & Last_Name MsgBox Full_Name End Sub 

To da teraz prawidłowe imię i nazwisko.

W ten sposób, używając symbolu ampersand, możemy łączyć wartości. Teraz rozwiążemy problem arkusza roboczego polegający na wspólnym rozwiązywaniu imienia i nazwiska, aby nadać mu pełne imię i nazwisko.

Ponieważ musimy łączyć wiele imion, musimy użyć pętli, aby połączyć imię i nazwisko. Poniższy kod wykona zadanie za Ciebie.

Kod:

 Sub Concatenate_Example1 () Dim i As Integer For i = 2 to 9 Cells (i, 3) .Value = Cells (i, 1) & "" & Cells (i, 2) Next i End Sub 

Spowoduje to połączenie imienia i nazwiska, tak jak nasza funkcja konkatenacji VBA.

Typowy błąd w konkatenacji Ampers i VBA

Jeśli zauważysz moje kody, dodałem znak spacji między wartościami symbol ampersand. Jest to istotne ze względu na naturę programowania w języku VBA.

Nie możemy łączyć ze sobą wartości i symboli ampersand, w przeciwnym razie otrzymamy błąd kompilacji, taki jak poniżej.

VBA Concatenate za pomocą funkcji JOIN

W VBA możemy użyć funkcji JOIN do łączenia wartości. Najpierw spójrz na składnię funkcji VBA JOIN.

  • Tablica to nic innego jak tablica przechowująca nasze wartości. Na przykład imię i nazwisko.
  • Separator to nic innego jak separator między każdą wartością tablicy, w tym przypadku znak spacji.

Poniższy kod pokaże przykład tego samego.

Kod:

Sub Concatenate_Example2 () Dim MyValues ​​As Variant Dim Full_Name As String MyValues ​​= Array ("Sachin", "Tendulkar") Full_Name = Join (MyValues, "") MsgBox Full_Name End Sub