Як використовувати конкатенацію в Excel VBA (4 способи)

  • Поділитися Цим
Hugh West

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

Завантажити Практичний посібник

Завантажте цей практичний посібник, щоб потренуватися, поки ви читаєте цю статтю.

VBA Concatenate Function.xlsm

Введення в функцію конкатенації в VBA

Як ми вже згадували, в Excel немає вбудованої функції для конкатенату VBA, але ми можемо змусити його працювати як функцію, об'єднавши різні рядки за допомогою операторів. Тут ми використовуємо амперсанд (&) як наш оператор.

⟴ Синтаксис

String1 = " Перший текст"

String2 = " Другий текст"

⟴ Значення, що повертається

Return_value = значення_повернення String1 & String2

4 Різні способи використання функції VBA Concatenate в Excel

Тут ми будемо використовувати 4 різних підходи для виконання процесу конкатенації. Ми будемо застосовувати різні оператори в поєднанні з VBA кодекс для досягнення цієї мети.

1. використання оператора амперсанда (&) для з'єднання комірок в конкатенаті VBA

Як показано на наведеному нижче скріншоті, ми маємо збір даних з двох стовпчиків з іменами в одному стовпчику та прізвищами в іншому. Об'єднавши ці два стовпчики, ми можемо отримати повні імена. VBA не має вбудованих методів для конкатенації, будемо використовувати амперсанд (&) оператору, як зазначено в інструкціях, наведених нижче.

Крок 1:

  • Перш за все, преса Alt + F11 для відкриття Робочий аркуш з підтримкою макросів.
  • Потім натисніть
  • Виберіть Модуль .

Крок 2:

  • Щоб об'єднати дві комірки в одну, скопіюйте та вставте наступне VBA
 Sub Concatenate2() Dim String1 As String Dim String2 As String Dim full_string As String String1 = Cells(5, 2).Value String2 = Cells(5, 3).Value Cells(5, 5).Value = String1 & String2 MsgBox (full_string) End Sub 

Ось,

  • String1 = Cells(5, 2).Value це перше місце розташування комірки B5 , рядок 5, і стовпчик 2 .
  • String2 = Cells(5, 3).Value друге місце розташування комірки C5 , рядок 5, і стовпчик 3 .
  • Cells(5, 5).Value = String1 & String2 місцезнаходження комірки результату E5 , рядок 5 і стовпчик 5 .
  • String1 & String2 два рядки, з'єднані між собою символом "амперсанд (&)

Крок 3:

  • Зберегти та натиснути F5 для запуску програми.

Тому ви отримаєте результат у вигляді E5 комірку поточного аркуша.

Крок 4:

  • Виконайте і повторіть кроки для решти клітинок і отримайте результати, як показано на малюнку нижче.

Зауважте. Бігти VBA коду, щоразу переконуйтеся, що ваш Excel-файл зберігається у програмі Excel Робоча таблиця з підтримкою макросів (xlsm.) у форматі.

Докладніше: Як використовувати VBA StrComp в Excel (5 поширених прикладів)

2. використання оператора "плюс" (+) для об'єднання комірок у конкатенаті VBA

Як описано в попередньому розділі, ми використали амперсанд (&) Для з'єднання рядків комірок можна отримати такий же результат, застосувавши оператор plus (+) знак замість амперсанду (&) Для цього виконайте наступні дії.

Крок 1:

  • Відкрити Макрос в Excel, натисніть Alt + F11 .
  • Натисніть Вставка та оберіть
  • Відкривши сторінку програми, вставте наступне VBA
 Sub Concatenate2() Dim String1 As String Dim String2 As String Dim full_string As String String1 = Cells(5, 2).Value String2 = Cells(5, 3).Value Cells(5, 5).Value = String1 + String2 MsgBox (full_string) End Sub 

Ось,

  • Cells(5, 5).Value = String1 + String2 саме цю лінію ми використовуємо плюс (+) знак замість амперсанду (&)

Крок 2:

  • Після вставки зберегти і натиснути F5 Запустити програму на виконання. Як наслідок, ви побачите зміну в комірці E5 .

  • Для отримання остаточних результатів заповніть необхідні клітинки, виконавши попередні кроки ще раз.

Читати далі: Як використовувати функцію VBA StrConv (5 прикладів)

Схожі читання:

  • Як викликати підлеглий елемент у VBA в Excel (4 приклади)
  • Повернення значення у функції VBA (як масивні, так і не масивні значення)
  • Як використовувати функцію DIR в Excel (7 прикладів)
  • Використання функції VBA UCASE в Excel (4 приклади)
  • Як використовувати функцію InStr у VBA (3 приклади)

3 Додавання декількох стовпців за допомогою VBA Concatenate

У попередніх двох підходах ми обговорили, як об'єднати дві клітинки. Однак, якщо ми хочемо застосувати його до всього стовпця, додавання по одній займе багато часу. Ми навчимо вас, як додати кілька стовпців повністю за допомогою VBA код для цього.

Крок 1:

  • По-перше, відкрити Макрос преса Alt + F11
  • Обирайте Модуль від Вставка вкладка
  • Потім вставте наступне VBA
 Sub ConcatCols() 'об'єднати стовпці B & C в стовпець E Dim LastRow As Long With Worksheets("Sheet3") LastRow = .Cells(.Rows.Count, "B").End(xlUp).Row With .Range("E5:E" & LastRow) .Formula = "=B5&C5" .Value = .Value End With End With End Sub 

Ось,

  • З робочими аркушами("Лист3") ім'я вашого поточного аркуша.
  • LastRow = .Cells(.Rows.Count, "B").End(xlUp).Row ім'я першого стовпчика.
  • With .Range("E5:E" & LastRow) діапазон комірок, що повертає результат.
  • .formula = "=B5&C5" формула для об'єднання першої комірки діапазону.

Крок 2:

  • Потім, нарешті, зберегти і натиснути F5 для запуску програми.

В результаті Ви отримаєте результати повністю в стовпчик.

Докладніше: Як використовувати VBA Rnd в Excel (4 способи)

4 Об'єднання декількох рядків за допомогою VBA Concatenate

Крім додавання декількох колонок, ми також можемо застосувати VBA код для об'єднання декількох рядків в один. Як показано на скріншоті нижче, ми хочемо об'єднати три рядки в один. Щоб об'єднати рядки, виконайте прості кроки, наведені нижче.

Крок 1:

  • Для активації Макрос в Excel, натисніть Alt + F11 .
  • Потім виберіть Модуль від Вставка
  • Щоб об'єднати рядки, вставте VBA
 Sub vba_concatenate() Dim rng As Range Dim i As String Dim SourceRange As Range Set SourceRange = Range("B5:D5") For Each rng In SourceRange i = i & rng & " " Next rng Range("B8").Value = Trim(i) End Sub 

Ось,

  • Set SourceRange = Range("B5:D5") діапазон вихідних комірок.
  • Range("B8").Value = Trim(i) номер зворотної комірки.

Крок 2:

  • Нарешті, збережіть програму і натисніть F5 бігти.

Таким чином, кінцевий результат об'єднання трьох рядків буде показано в комірці B8 .

Читати далі: Як приховати верхні рядки в Excel (7 способів)

Висновок

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

Будь ласка, не соромтеся звертатися до нас, якщо у Вас виникнуть будь-які запитання. Будь ласка, повідомте нам, що Ви думаєте, у коментарях нижче.

На сьогоднішній день, на жаль, це не так. Ексельдемія Команда постійно відповідатиме на ваші запитання.

Г’ю Вест — досвідчений тренер і аналітик Excel із понад 10-річним досвідом роботи в галузі. Він має ступінь бакалавра з бухгалтерського обліку та фінансів і ступінь магістра з ділового адміністрування. Г’ю має пристрасть до викладання та розробив унікальний підхід до викладання, який легко зрозуміти та дотримуватися. Його експертне знання Excel допомогло тисячам студентів і професіоналів у всьому світі вдосконалити свої навички та досягти успіху в кар’єрі. У своєму блозі Г’ю ділиться своїми знаннями зі світом, пропонуючи безкоштовні навчальні посібники з Excel та онлайн-навчання, щоб допомогти окремим особам і компаніям повністю розкрити свій потенціал.