Excel VBA функция за присъединяване

Функцията VBA JOIN се използва за обединяване на масив от подредове с посочения разделител. Точно както самата дума означава, че тя трябва да се присъедини към две или повече низове. Сега ето няколко улова с него. Низовете са в масив и той също използва разделител като свързваща функция. Но разделителят за конканатната функция може да бъде различен между всеки два низа, защото трябва да предоставим по един разделител между всеки два низа, като използваме функцията за свързване. Но в Join in VBA трябва да предоставим разделител само веднъж. Този разделител се използва за присъединяване на всеки низ. Но този параметър също е незадължителен. И така, какво се случва, когато не предоставим разделител на функцията? Когато не предоставим никакъв разделител на функцията, той по подразбиране заема място като разделител.

Синтаксис на функция за присъединяване в Excel VBA

Функцията за присъединяване има следния синтаксис в Excel VBA:

Сега нека разберем аргументите за функцията за присъединяване към VBA,

  • Източник Array: Това е масив или набор от низове, които искаме да обединим.
  • Разделител: Това е разделителят или символът, който използваме за разграничаване между един низ на друг. Разделителят може да бъде интервал или запетая или пълен стоп или всеки символ от нашия компютър.

Изходът, върнат от тази функция, е низ.

Как да използвате функцията за присъединяване към Excel VBA?

Ще научим как да използваме функция VBA Join с няколко примера в Excel.

Можете да изтеглите този VBA Присъединете се към Excel шаблон тук - VBA Присъединете се към шаблон на Excel

Excel VBA Join - Пример №1

Първо, нека започнем с основен пример. Имаме път на файл, съхраняван в различни клетки на нашия работен лист в лист 1. Искаме общ път до това място в друга клетка. Пътят, който трябва да се съедини, е следният,

Искаме пътя в клетка Е2. Следвайте стъпките по-долу, за да използвате функцията за присъединяване в Excel VBA.

Стъпка 1: Отидете в раздела на програмиста и след това щракнете върху visual basic, за да можете да влезете във VB Editor.

Стъпка 2: Щракнете върху раздела за вмъкване и поставете модул във VBA проекта.

Стъпка 3: Сега нека обявим първата си подпроцедура, както следва.

Код:

 Пример Sub () Край Sub 

Стъпка 4: Тъй като разполагаме с данните, можем просто да използваме стойността на свойството диапазон, за да се присъединим към пътя, както следва.

Код:

 Sub Пример () Обхват ("E2"). Стойност = Край Sub 

Стъпка 5: Използвайте функцията за присъединяване, за да присъедините всички низове заедно с разделителя като „\“.

Код:

 Под пример () Диапазон ("E2"). Стойност = Присъединяване (масив (диапазон ("A2"). Стойност, диапазон ("B2"). Стойност; диапазон ("C2"). Стойност; диапазон ("D2") .Value), "\") Край Sub 

Стъпка 6: Стартирайте горния код чрез натискане на клавиша F5 или като кликнете върху бутона Пусни да стартирате и ще постигнем резултат в клетка E2, както е показано по-долу.

Можем да видим, че и четирите низа са съединени заедно с общ разделител, който е „\“.

Excel VBA Join - Пример №2

Нека продължим напред с практически пример. Имам име на студент, маркировки и пропуск или провал в един лист. Искаме да направим отделна папка с файлове, съдържаща дали студентът е преминал или не, или дали е получил признание. За това ще вземем назаем някои от концепциите на FSO (File System Objects), използвайки функцията за присъединяване. Е, данните изглеждат като една по-долу.

Следвайте стъпките по-долу, за да използвате функцията за присъединяване в Excel VBA.

Стъпка 1: В същия модул нека стартираме друга подпроцедура, както следва.

Код:

 Под Пример2 () Краен Под 

Стъпка 2: Декларирайте две променливи като FSO и текстов поток, което е метод на FSO, както следва.

Код:

 Dim FSO като нов Scripting.FileSystemObject Dim St като Scripting.TextStream 

Стъпка 3: Сега нека декларираме още няколко променливи, Една като диапазон за задържане на редовете и друга като цяло число за задържане на колоните, а друга като String за съхраняване на присъединената стойност на низа и пътя на папка и една за създаване на имената на файловете.

Код:

 Dim rw As Range Dim res As String Dim col като Integer Dim FolPath As String Dim Резултат като String 

Стъпка 4: Тъй като имаме данни в лист 2, нека първо активираме лист 2.

Код:

 Работни листове ( "Sheet2"). Activate 

Стъпка 5: Сега нека преброим броя колони, които имаме в данните, както следва,

Код:

 col = Обхват ("A1"). CurrentRegion.Columns.Count 

Стъпка 6: Сега нека определим път към Folpath, използвайки информационната функция ENVIRON, както следва.

Код:

 FolPath = Environment ("UserProfile") & "\ Desktop \ Result" 

Стъпка 7: Сега нека проверим дали папката съществува или не, и ако не, тогава нека да създадем такава, използвайки метода FSO, както следва.

Код:

 Ако не FSO.FolderExists (FolPath), тогава FSO.CreateFolder FolPath 

Стъпка 8: Сега нека добавим съхранените имена, използвайки функцията за компенсиране, както следва.

Код:

 За всеки rw в обхват ("A2", обхват ("A1"). Край (xlDown)) Резултат = rw.Offset (0, 1) .Value 

Това ще отвори файловете с имена едновременно в режим на добавяне, където по-новите стойности ще бъдат последната добавена. Използвахме горния код, така че стойността на резултата ще бъде присвоена една по една.

Стъпка 9: След като функцията за присъединяване използва 1-D масив, ще използваме application.transpose функция с функцията съединяване, за да я преобразуваме в 1-D масив, както следва.

Код:

 Задайте St = FSO.OpenTextFile (FolPath & "\" & Result & ".xls", ForAppending, True) res = Join (Application.Transpose (Application.Transpose (rw.Resize (1, col) .Value)), vbTab ) St.WriteLine res 

Защо сме използвали application.transpose? Тъй като като цяло обхватът на масива (1-D) трябва да е хоризонтален, което означава, че един ред има много колони. Тъй като ние имаме вертикален диапазон тук в колона B, което е резултатът, използвахме тази функция за транспониране, за да я преобразуваме в 1-D масив. Използвахме VbTab като разделител, така че стойностите да са в следващите клетки.

Стъпка 10: Преди да прекратим цикъла за цикъл, нека да затворим файла и след това да завършим цикъла, както следва.

Общият код изглежда като този по-долу.

Код:

 Под пример2 () Dim FSO като нов Scripting.FileSystemObject Dim St като Scripting.TextStream Dim rw като диапазон Dim res като String Dim col като Integer Dim FolPath като String Dim Result като String Worksheets ("Sheet2"). A1 "). CurrentRegion.Columns.Count FolPath = Environment (" UserProfile ") &" \ Desktop \ Result "Ако не FSO.FolderExists (FolPath), тогава FSO.CreateFolder FolPath за всеки rw в диапазон (" A2 ", Range (" A1 "). Край (xlDown)) Резултат = rw.Offset (0, 1) .Value Set St = FSO.OpenTextFile (FolPath &" \ "& Result &" .xls ", ForAppending, True) res = Join (Приложение .Transpose (Application.Transpose (rw.Resize (1, col) .Value)), vbTab) St.WriteLine res St.Close Next rw End Sub 

Стъпка 11: Сега нека стартираме горния код, като натискаме клавиша F5, на работния ни плот можем да видим, че е създадена папка с името на резултата, както е показано по-долу.

Стъпка 12: Отворете папката, ще имаме три файла като Pass, Fail и Grace.

Ако отворим някой от файловете, нека само да кажем, че отваряме файл Fail, можем да видим данните за неуспешните студенти.

Неща, които трябва да запомните

  • Използва се за присъединяване на низ от масиви с общ разделител.
  • Изходът, върнат от тази функция е String.
  • То е противоположно на функцията за разделяне във VBA.
  • Ако не предоставим разделител на тази функция, тя по подразбиране заема място като разделител.
  • Масивът в аргумента трябва да бъде едномерен масив. Ако не, можем да използваме конвенционалните методи за прилагане.преместете, както е обяснено в Пример 2.

Препоръчителни статии

Това е ръководство за функцията за присъединяване към VBA. Тук обсъждаме как да използвате функцията за присъединяване в Excel, използвайки VBA код, заедно с практически примери и шаблон за изтегляне на excel. Можете да разгледате и другите ни предложени статии -

  1. Функция за дата на Excel
  2. Свържете струните в Excel
  3. Приложения на VBA Union
  4. Свързващи колони в Excel

Категория: