Оглавление
В Excel конкатенация - это процесс соединения двух строк в одну. Проще говоря, если у нас есть таблица с именами в одном столбце и фамилиями в другом, мы можем использовать процедуру конкатенации для конкатенации и объединения их в одной ячейке за долю секунды. В Excel у нас есть функция под названием CONCATENATE () который позволяет нам делать эту конкатенацию. Однако в VBA , этот тип функции не разрешен. Мы не можем использовать CONCATENATE () в коде VBA, поскольку он не будет работать. Потому что VBA не имеет встроенных функций, и мы не можем использовать функции электронных таблиц. Поэтому в этом уроке мы покажем вам, как использовать VBA concatenate для объединения нескольких ячеек, столбцов и строк в Excel.
Скачать Практическое пособие
Скачайте эту рабочую тетрадь для тренировок, чтобы заниматься во время чтения этой статьи.
VBA Concatenate Function.xlsmВведение в функцию конкатената VBA
Как мы уже говорили, в Excel нет встроенной функции для VBA Concatenate, но мы можем сделать так, чтобы она работала как функция, комбинируя различные строки с помощью операторов. Здесь мы используем амперсанд (&) как наш оператор.
⟴ Синтаксис
String1 = " Первый текст"
String2 = " Второй текст"
⟴ Возвращаемое значение
Возвращаемое_значение = String1 & String2
4 различных варианта использования функции VBA Concatenate в Excel
Здесь мы будем использовать 4 различных подхода для выполнения процесса конкатенации. Мы будем применять различные операторы в сочетании с VBA код для достижения этой цели.
1. использование оператора Ampersand (&) для объединения ячеек в VBA Concatenate
Как показано на скриншоте ниже, у нас есть коллекция данных с двумя колонками, в одной из которых имена, а в другой - фамилии. Объединив эти две колонки, мы можем получить все имена. Потому что VBA не имеет встроенных методов для конкатенации, мы будем использовать амперсанд (&) оператора в соответствии с приведенными ниже инструкциями.
Шаг 1:
- Прежде всего, нажмите Альт + 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 StrComp в Excel (5 общих примеров)
2. Использование оператора плюс (+) для объединения ячеек в конкатенате VBA
Как описано в предыдущем разделе, мы использовали амперсанд (&) оператор для объединения строк ячеек. Вы можете получить тот же результат, применив оператор plus (+) знак вместо амперсанда (&) Оператор. Для этого выполните следующие действия.
Шаг 1:
- Чтобы открыть Макро в Excel, нажмите Альт + 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 (значения из массива и не из массива)
- Как использовать функцию VBA DIR в Excel (7 примеров)
- Использование функции VBA UCASE в Excel (4 примера)
- Как использовать функцию InStr в VBA (3 примера)
3. Добавление нескольких столбцов с помощью конкатената VBA
В предыдущих двух подходах мы обсудили, как объединить две ячейки. Однако, если мы хотим применить это ко всему столбцу, добавление по одному займет много времени. Мы научим вас, как добавить несколько столбцов полностью с помощью VBA код для этого.
Шаг 1:
- Во-первых, чтобы открыть Макро нажмите Альт + 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
Вот,
- With Worksheets("Sheet3") это имя вашего текущего рабочего листа.
- LastRow = .Cells(.Rows.Count, "B").End(xlUp).Row это имя первого столбца.
- With .Range("E5:E" & LastRow) это диапазон ячеек возврата результата.
- .Formula = "=B5&C5" это формула для присоединения к первой ячейке диапазона.
Шаг 2:
- Затем, наконец, сохраните и нажмите F5 чтобы запустить программу.
В результате вы получите результаты полностью в столбце.
Подробнее: Как использовать VBA Rnd в Excel (4 метода)
4. объединение нескольких строк с помощью конкатената VBA
Помимо добавления нескольких столбцов, мы также можем применить VBA Код для объединения нескольких строк в одну. Как показано на скриншоте ниже, мы хотим объединить три строки в одну. Чтобы объединить строки, выполните следующие простые действия.
Шаг 1:
- Для активации Макро в Excel, нажмите Альт + 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 различными способами. Все эти приемы следует изучить и использовать на своих данных. Изучите учебник и примените полученные знания на практике. Благодаря вашей любезной поддержке у нас есть стимул продолжать создавать подобные семинары.
Пожалуйста, не стесняйтесь обращаться к нам, если у вас есть какие-либо вопросы. Пожалуйста, дайте нам знать, что вы думаете, в области комментариев ниже.
Сайт Exceldemy Команда будет постоянно отвечать на ваши вопросы.