Spojiť VBA Ako spojiť reťazce vo VBA?

Zreťazenie znamená spojenie dvoch hodnôt alebo dvoch reťazcov dohromady, podobne ako v programe Excel používame & alebo tiež známe ako operátor ampersand na zreťazenie, dva zreťazenia dvoch reťazcov, ktoré používame & operátor ako reťazec 1 a reťazec 2, teraz si treba pamätať a to je pri použití operátora & musíme poskytnúť medzery alebo VBA to bude považovať za také dlhé.

VBA zreťaziť reťazce

VBA Concatenate je jedna z vecí, ktorú sme použili na kombináciu dvoch alebo viacerých hodnôt bunkových hodnôt, ak hovorím jednoduchým jazykom, že kombinuje, spája dve alebo viac hodnôt, aby mal úplnú hodnotu.

Máme funkciu nazvanú CONCATENATE v programe Excel, ktorá bude kombinovať dve alebo viac hodnôt alebo dve alebo viac buniek spolu.

Ale vo VBA nemáme žiadnu zabudovanú funkciu na zreťazenie dvoch alebo viacerých hodnôt dohromady. V skutočnosti sa nedostaneme ani k prístupu k triede funkcií pracovného hárka, aby sme mohli pristupovať k funkcii VBA CONCATENATE ako funkcia pracovného hárka.

Ako zreťaziť reťazce vo VBA?

Ak nemáme žiadny druh vstavanej funkcie na spájanie hodnôt a funkcia listu nie je integrovaná do VBA. Výzvou teraz je, ako kombinujeme hodnoty?

Aj keď neexistujú žiadne zabudované funkcie, môžeme ich kombinovať vo VBA pomocou symbolu „ampersand“ (&).

Ak pravidelne sledujete naše príspevky, v kódovaní často používame symbol ampersand (&).

Napríklad ak máte meno a priezvisko osobitne, môžeme ich spojiť a vytvoriť celé meno. Podľa nasledujúcich pokynov si sami napíšete kód makra VBA.

Krok 1: Prejdite do editora jazyka Visual Basic a vytvorte čiastkový postup VBA.

Krok 2: Definujte tri premenné ako reťazec .

Kód:

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

Krok 3: Teraz priraďte premennej meno a priezvisko .

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: Teraz tieto dva názvy skombinujte do premennej Full_Name pomocou premennej 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: Teraz v poli so správou zobrazte hodnotu premennej Full_Name .

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 

Teraz spustite kód, ktorý dostaneme celé meno do okna správy.

Problém s týmto celým menom je, že sme nepridali znakový priestor oddeľovača mien a priezviska. Pri kombinovaní mena a priezviska tiež kombinujte znak medzery.

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 

Toto bude mať teraz správne celé meno.

Takto pomocou symbolu ampersand môžeme spojiť hodnoty. Teraz vyriešime problém listu s riešením spoločného mena a priezviska, aby bolo celé meno.

Pretože potrebujeme skombinovať veľa mien, musíme pomocou slučiek skombinovať meno a priezvisko. Nasledujúci kód urobí prácu za vás.

Kód:

 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 

Toto skombinuje meno a priezvisko rovnako ako naša zreťazená funkcia VBA.

Bežná chyba v zreťazení Ampersand VBA

Ak si všimnete moje kódy, medzi hodnoty som pridal znak medzery a symbol ampersand. To je nevyhnutné kvôli povahe programovania VBA.

Hodnoty a symboly ampersand nemôžeme kombinovať, inak sa zobrazí chyba kompilácie, ako je uvedené nižšie.

VBA zreťaziť pomocou funkcie JOIN

Vo VBA môžeme kombinovať hodnoty pomocou funkcie JOIN. Najskôr sa pozrite na syntax funkcie VBA JOIN.

  • Pole nie je nič iné ako pole, ktoré uchováva naše hodnoty. Napríklad meno aj priezvisko.
  • Oddeľovač nie je nič iné ako oddeľovač medzi každou hodnotou poľa, v tomto prípade medzerníkom.

Nasledujúci kód bude uvádzať príklad toho isté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