Как использовать vba для объединения строк?
Чтобы объединить две строки с помощью кода VBA, необходимо использовать амперсанд. Вы можете использовать амперсанд между двумя строками, чтобы объединить их, а затем присвоить это новое значение ячейке, переменной или полю сообщения. Аналогичным образом вы также можете объединить более двух значений.
Позже мы увидим простой пример, чтобы понять это.
Шаги по использованию VBA для объединения
- Сначала введите первую строку, используя двойные кавычки.
- После этого введите амперсанд.
- Затем введите второй текст, используя двойные кавычки.
- В конце присвойте это значение ячейке или переменной или используйте окно сообщения, чтобы увидеть его.
Sub vba_concatenate() Range("A1") = "Mike" & "Ross" End Sub
Объединение с разделителем
Вы также можете использовать разделитель между двумя строками, просто добавив третий ампсанд. Рассмотрим следующий код.
Range("A1") = "Mike" & "-" & "Ross"
В приведенном выше коде вы использовали разделитель в двух строках и соединили их, используя только амперсанды. По сути, всякий раз, когда вам нужно что-то заключить, вам нужно использовать внутри этого амперсанд.
Объединение с использованием переменных
Вы также можете хранить значения в переменных, а затем объединять значения этих двух переменных. Рассмотрим следующий код.
В приведенном выше коде переменные объявлены как переменные, а затем вы присвоили этим переменным значения. И в конце мы использовали амперсанд для объединения трех переменных, а затем присвоили результат ячейке A1.
Объединить диапазон с помощью VBA
Вы также можете объединить значения из диапазона ячеек с помощью VBA. Рассмотрим следующий макрос.
Sub vba_concatenate() Dim rng As Range Dim i As String Dim SourceRange As Range Set SourceRange = Range("A1:A10") For Each rng In SourceRange i = i & rng & " " Next rng Range("B1").Value = Trim(i) End Sub
В приведенном выше коде вы использовали FOR NEXT (циклы For) для перебора диапазона, который вы хотите объединить.
Таким образом, он обращается к каждой ячейке диапазона (A1:A10), сохраняет это значение в переменной I и использует амперсанд для объединения значений на каждой итерации. В конце установите объединенный канал в диапазон B1.
А следующий код объединяет значения выбранного диапазона. Все, что вам нужно сделать, это выбрать диапазон, а затем запустить код.
Dim rng As Range Dim i As String For Each rng In Selection i = i & rng & " " Next rng Range("B1").Value = Trim(i)
Объединение всего столбца или строки
Если вы хотите объединить весь столбец или строку, в этом случае лучше не использовать метод цикла. Вы можете использовать функцию рабочего листа «TextJoin», которая может объединить всю строку или столбец (рассмотрите следующий код).
'join values from column A. Dim myRange As Range Dim myString As String Range("B1") = WorksheetFunction.TextJoin(" ", True, Range("A:A")) 'join values from row 1. Dim myRange As Range Dim myString As String Range("B1") = WorksheetFunction.TextJoin(" ", True, Range("1:1"))