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 hodnot buněk dohromady, pokud řeknu v jednoduchém jazyce, že 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 nedostaneme ani 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 funkce listu není integrována do VBA. Výzvou nyní je, jak kombinujeme hodnoty?
Přestože neexistují žádné vestavěné funkce, můžeme je kombinovat ve VBA pomocí symbolu „ampersand“ (&).
Pokud pravidelně sledujete naše příspěvky, často používáme v kódování symbol ampersand (&).
Například pokud máte křestní jméno a příjmení samostatně, můžeme je 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í kombinujte 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 použít smyčky ke spojení jména a příjmení. 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 mezeru mezi hodnoty a symbol ampersand. To je zásadní vzhledem k povaze programování VBA.
Nemůžeme kombinovat hodnoty a symboly ampersand dohromady, jinak dostaneme chybu kompilace jako 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é uchovává naše hodnoty. Například křestní jméno i příjmení.
- Oddělovač není nic jiného, než jaký je 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