VBA zřetězit - Jak spojit řetězce společně ve VBA?

Zřetězení znamená spojení dvou hodnot nebo dvou řetězců dohromady, podobně jako excel používáme & nebo také známý jako operátor ampersand pro zřetězení, dva zřetězení dvou řetězců, které používáme & operátor jako String 1 & String 2, nyní je důležité si pamatovat a že je při použití operátoru & musíme poskytnout mezery nebo VBA to bude považovat za dlouhé.

Zřetězit řetězce VBA

VBA Concatenate je jednou z těch věcí, které jsme použili ke kombinaci dvou nebo více hodnot buněk dohromady. Pokud řeknu v jednoduchém jazyce, že se kombinuje, spojuje dvě nebo více hodnot dohromady, aby měla plnou hodnotu.

Máme funkci nazvanou CONCATENATE v aplikaci Excel, která provede kombinaci dvou nebo více hodnot nebo dvou nebo více hodnot buněk dohromady.

Ale ve VBA nemáme žádnou vestavěnou funkci pro zřetězení dvou nebo více hodnot dohromady. Ve skutečnosti se ani nedostaneme k přístupu k třídě funkcí listu, abychom získali přístup k funkci VBA CONCATENATE jako funkci listu.

Jak zřetězit řetězce ve VBA?

Pokud nemáme žádný druh vestavěné funkce pro zřetězení hodnot a dokonce ani funkce listu není integrována s VBA. Nyní je výzvou, jak kombinujeme hodnoty?

I když neexistují žádné vestavěné funkce, stále můžeme kombinovat ve VBA pomocí symbolu „ampersand“ (&).

Pokud naše příspěvky sledujete pravidelně, často v kódování používáme symbol ampersand (&).

Například pokud máte křestní jméno a příjmení zvlášť, můžeme tyto dvě kombinovat a vytvořit je jako celé jméno. Postupujte podle níže uvedených kroků a sami napíšeme kód makra VBA.

Krok 1: Přejděte do editoru jazyka a vytvořte dílčí postup VBA.

Krok 2: Definujte tři proměnné jako řetězec .

Kód:

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

Krok 3: Nyní přiřaďte proměnné jméno a příjmení .

Kód:

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: Nyní spojte tyto dva názvy do proměnné Full_Name pomocí proměnné ampersand.

Kód:

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 End Sub

Krok 5: Nyní zobrazte hodnotu proměnné Full_Name v okně se zprávou.

Kód:

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

Nyní spusťte kód; do pole se zprávou dostaneme celé jméno.

Problém s tímto celým jménem je, že jsme nepřidali znakový prostor oddělovače křestního jména a příjmení, zatímco při kombinaci křestního jména a příjmení kombinujte také znak mezery.

Kód:

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

Tímto způsobem nyní získáte správné celé jméno.

Stejně jako pomocí symbolu ampersand můžeme zřetězit hodnoty. Nyní vyřešíme problém listu spočívající v řešení křestního jména a příjmení společně, aby bylo celé jméno.

Jelikož potřebujeme kombinovat mnoho jmen, musíme kombinovat křestní jméno a příjmení pomocí smyček. Níže uvedený kód provede práci za vás.

Kód:

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

To bude kombinovat křestní jméno a příjmení, stejně jako naše funkce zřetězení VBA.

Běžná chyba při zřetězení Ampersand VBA

Pokud si všimnete mých kódů, přidal jsem mezi hodnoty a znak ampersand mezerový znak. To je zásadní vzhledem k povaze programování VBA.

Hodnoty a symboly ampersand nemůžeme kombinovat společně; v opačném případě se zobrazí chyba kompilace, jak je uvedeno níže.

VBA zřetězení pomocí funkce JOIN

Ve VBA můžeme kombinovat hodnoty pomocí funkce JOIN. Nejprve se podívejte na syntaxi funkce VBA JOIN.

  • Pole není nic jiného než pole, které obsahuje naše hodnoty - například křestní jméno i příjmení.
  • Oddělovač není nic jiného než oddělovač mezi každou hodnotou pole, v tomto případě mezerou.

Níže uvedený kód ukazuje příklad toho samého.

Kód:

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 

Zajímavé články...