Функція приєднання Excel VBA

Функція VBA JOIN використовується для з'єднання масиву підрядів із заданим роздільником. Так само, як саме слово означає, що йому потрібно з'єднати два або більше рядків. Тепер ось декілька уловів. Рядки є в масиві, і він також використовує роздільник як функцію з'єднання. Але роздільник для конканатної функції може бути різним між будь-якими двома рядками, оскільки нам потрібно забезпечити один роздільник між кожними двома рядками, використовуючи функцію конканат. Але для Join in VBA нам потрібно надати роздільник лише один раз. Цей роздільник використовується для приєднання кожного рядка. Але цей параметр також необов’язковий. То що відбувається, коли ми не надаємо розмежувач функції? Коли ми не надаємо жодний роздільник для функції, він за замовчуванням займає «простір» як роздільник.

Синтаксис функції приєднання в Excel VBA

Функція приєднання має такий синтаксис у Excel VBA:

Тепер давайте розберемося в аргументах функції VBA Join,

  • Джерельний масив: Це масив або набір рядків, які ми хочемо об'єднати разом.
  • Розмежувач: Це роздільник або символ, який ми використовуємо для розмежування однієї струни на іншу. Розмежувачем може бути пробіл, кома або повна зупинка або будь-який символ з нашого комп’ютера.

Вихід, що повертається за допомогою цієї функції, є рядком.

Як використовувати функцію приєднання Excel VBA?

Ми дізнаємось, як використовувати функцію приєднання VBA з кількома прикладами в Excel.

Ви можете завантажити цей шаблон приєднання VBA до Excel тут - VBA Приєднайтесь до шаблону Excel

Excel VBA Join - Приклад №1

Спочатку почнемо з основного прикладу. У нас є шлях до файлу, який зберігається в різних комірках нашого робочого аркуша на аркуші 1. Ми хочемо загальний шлях до цього місця в іншій комірці. Шлях, який потрібно з'єднати, полягає в наступному,

Ми хочемо шлях у комірці E2. Виконайте наведені нижче дії, щоб використовувати функцію приєднання в Excel VBA.

Крок 1: Перейдіть на вкладку розробника, а потім натисніть на Visual Basic, щоб мати можливість потрапити в VB Editor.

Крок 2: Клацніть на вкладці Вставити і вставити модуль у проект VBA.

Крок 3: Тепер оголосимо нашу першу підпроцедуру наступним чином.

Код:

 Sub Example () Кінець Sub 

Крок 4: Оскільки у нас є дані, ми можемо просто використовувати значення властивості діапазону, щоб приєднатися до наступного шляху.

Код:

 Sub Example () Діапазон () Діапазон ("E2"). Значення = Кінець Sub 

Крок 5: Використовуйте функцію приєднання, щоб з'єднати всі рядки разом з роздільником як "\".

Код:

 Підприклад () Діапазон ("Е2"). Значення = Приєднатися (масив (діапазон ("А2"). Значення, діапазон ("В2"). Значення, діапазон ("С2"). Значення, діапазон ("D2") .Value), "\") Закінчення Sub 

Крок 6: Запустіть наведений вище код, натиснувши клавішу F5 або натиснувши кнопку Відтворити, і ми отримаємо результат у комірці E2, як показано нижче.

Ми бачимо, що всі чотири рядки з'єднані разом із загальним роздільником, який є "\".

Excel VBA Join - Приклад №2

Давайте просунемось на практичному прикладі. В мене на одному аркуші є ім'я, позначки та пропуск студента. Ми хочемо зробити окрему папку з файлами, що містять, чи пройшов студент, чи не вдався, чи отримав оцінку. Для цього ми запозичимо деякі поняття FSO (Об'єкти файлової системи) за допомогою функції приєднання. Ну, дані виглядають так, як наведено нижче.

Виконайте наведені нижче дії, щоб використовувати функцію приєднання в Excel VBA.

Крок 1: У цьому ж модулі розпочнемо інший підпроцедур наступним чином.

Код:

 Sub Example2 () Кінець Sub 

Крок 2: Оголосіть дві змінні як FSO та textstream, що є методом FSO наступним чином.

Код:

 Dim FSO як новий Scripting.FileSystemObject Dim St As Scripting.TextStream 

Крок 3: Тепер давайте оголосимо ще кілька змінних: Один як діапазон для утримання рядків, а інший як ціле число для утримання стовпців, а інший як String для зберігання об'єднаних рядкових значень та шляху Папки та один для створення назв файлів.

Код:

 Dim rw As Range Dim res As String Dim col як Integer Dim FolPath As String Dim Result As String 

Крок 4: Оскільки у нас є дані на аркуші 2, спершу активуємо аркуш 2.

Код:

 Робочі таблиці ("Лист2"). Активуйте 

Крок 5: Тепер давайте підрахуємо кількість стовпців, що містяться в даних, наступним чином,

Код:

 col = Діапазон ("A1"). CurrentRegion.Columns.Count 

Крок 6: Тепер призначимо шлях до Folpath за допомогою інформаційної функції ENVIRON наступним чином.

Код:

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

Крок 7: Давайте перевіримо, чи папка існує чи ні, і якщо вона не дозволяє створити її за допомогою методу FSO наступним чином.

Код:

 Якщо не FSO.FolderExists (FolPath), тоді FSO.CreateFolder FolPath 

Крок 8: Тепер додамо імена, збережені за допомогою функції зміщення, наступним чином.

Код:

 Для кожного ряду в діапазоні ("A2", діапазон ("A1"). Кінець (xlDown)) Результат = rw.Offset (0, 1) .Value 

Це відкриє файли з іменами одночасно в режимі додавання, де новіші значення будуть останніми. Ми використали наведений вище код, щоб значення результату було присвоєне по одному.

Крок 9: Тепер, оскільки функція Join використовує 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: Перш ніж закінчити цикл for, давайте закриємо файл, а потім закінчимо цикл наступним чином.

Загальний код виглядає як наведений нижче.

Код:

 Під приклад2 () Dim FSO як новий Scripting.FileSystemObject Dim St як Scripting.TextStream Dim rw As Range Dim res As String Dim col як Integer Dim FolPath As String Dim Result As String Worksheets ("Sheet2"). Активуйте col = Range (" A1 "). CurrentRegion.Columns.Count FolPath = Environment (" UserProfile ") &" \ Desktop \ Result "Якщо не FSO.FolderExists (FolPath), то FSO.CreateFolder FolPath для кожного rw у діапазоні (" A2 ", Range (" A1 "). Кінець (xlDown)) Результат = rw.Offset (0, 1). Set Set St = FSO.OpenTextFile (FolPath &" \ "& Result &" .xls ", ForAppending, True) res = Join (Application .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.
  • Це протилежно функції Split в VBA.
  • Якщо ми не надаємо роздільник для цієї функції, він за замовчуванням займає "простір" як роздільник.
  • Масив в аргументі повинен бути одновимірним масивом. Якщо ні, ми можемо використовувати звичайні методи застосування.перемістіть, як пояснено в Прикладі 2.

Рекомендовані статті

Це посібник щодо функції приєднання VBA. Тут ми обговорюємо, як використовувати функцію приєднання в Excel за допомогою коду VBA разом із практичними прикладами та шаблоном Excel, який можна завантажити. Ви також можете ознайомитися з іншими запропонованими нами статтями -

  1. Функція дати Excel
  2. Об'єднайте рядки в Excel
  3. Програми VBA Union
  4. Спільні стовпці Excel

Категорія: