Конкатенация означает объединение двух значений или двух строк вместе, подобно тому, как в excel мы используем &, или также известном как оператор амперсанда для конкатенации, две конкатенации двух строк мы используем оператор &, например String 1 и String 2, теперь есть важная вещь, о которой нужно помнить, и что при использовании оператора & нам нужно предоставить пробелы, иначе VBA будет рассматривать его как долго.
Конкатенационные строки VBA
VBA Concatenate - одна из тех вещей, которые мы использовали для объединения двух или более значений ячеек значений вместе, если я говорю на простом языке, что они объединяются, это объединение двух или более значений вместе, чтобы иметь полное значение.
У нас есть функция CONCATENATE в excel, которая объединяет два или более значений или два или более значений ячеек вместе.
Но в VBA у нас нет встроенной функции для объединения двух или более значений. Фактически, у нас даже нет доступа к классу функции рабочего листа, чтобы получить доступ к функции VBA CONCATENATE как функции рабочего листа.
Как объединить строки в VBA?
Если у нас нет какой-либо встроенной функции для объединения значений, и даже функция рабочего листа не интегрирована с VBA. Теперь проблема в том, как нам сочетать ценности?
Несмотря на то, что встроенных функций нет, мы можем комбинировать в VBA, используя символ «амперсанд» (&).
Если вы регулярно следите за нашими публикациями, мы часто используем символ амперсанда (&) в нашей кодировке.
Например, если у вас есть имя и фамилия отдельно, мы можем объединить эти два и сделать их полным именем. Выполните следующие действия, чтобы самостоятельно написать код макроса VBA.
Шаг 1. Перейдите в редактор Visual Basic и создайте подпроцедуру VBA.
Шаг 2: Определите три переменные как String .
Код:
Sub Concatenate_Example () Dim First_Name As String Dim Last_Name As String Dim Full_Name As String End Sub
Шаг 3: Теперь присвойте переменной имя и фамилию .
Код:
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
Шаг 4: Теперь объедините эти два имени с переменной Full_Name, используя переменную амперсанда.
Код:
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
Шаг 5: Теперь покажите значение переменной Full_Name в окне сообщения.
Код:
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
Теперь запустите код, мы получим полное имя в окне сообщения.
Проблема с этим полным именем заключается в том, что мы не добавили пробел разделителя имени и фамилии, а при объединении имени и фамилии также комбинируем пробел.
Код:
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
Теперь это даст полное имя.
Подобно этому, используя символ амперсанда, мы можем объединять значения. Теперь мы решим задачу рабочего листа, состоящую из решения имени и фамилии вместе, чтобы сделать его полным именем.
Поскольку нам нужно объединить много имен, нам нужно использовать циклы для объединения имени и фамилии. Приведенный ниже код сделает всю работу за вас.
Код:
Sub Concatenate_Example1 () Dim i As Integer For i = от 2 до 9 ячеек (i, 3). Value = Cells (i, 1) & "" & Cells (i, 2) Next i End Sub
Это объединит имя и фамилию так же, как наша функция конкатенации VBA.
Распространенная ошибка в конкатенации Ampersand VBA
Если вы заметили мои коды, я добавил пробел между значениями и символ амперсанда. Это важно из-за природы программирования на VBA.
Мы не можем комбинировать значения и символы амперсанда вместе, иначе мы получим ошибку компиляции, как показано ниже.
Конкатенация VBA с использованием функции JOIN
В VBA мы можем использовать функцию JOIN для объединения значений. Сначала посмотрите на синтаксис функции VBA JOIN.
- Массив - это не что иное, как массив, содержащий наши значения. Например, имя и фамилия.
- Разделитель - это не что иное, как разделитель между каждым значением массива, в данном случае пробел.
В приведенном ниже коде будет показан пример того же.
Код:
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