Как да използвате конкатенация в Excel VBA (4 метода)

  • Споделя Това
Hugh West

В Excel конкатенацията е процесът на обединяване на два низа, за да се образува един низ. Казано по-просто, ако имаме таблица с имена в една колона и фамилии в друга, можем да използваме процедурата за конкатенация, за да ги обединим в една клетка за част от секундата. В Excel има функция, наречена CONCATENATE () което ни позволява да направим това конкатенация. VBA , този вид функция не е разрешен. Не можем да използваме CONCATENATE () в кода на VBA, тъй като той няма да работи. VBA липсват вградени функции и не можем да използваме функциите на електронната таблица. Затова в този урок ще ви покажем как да използвате VBA конкатенация за комбиниране на няколко клетки, колони и редове в Excel.

Изтегляне на работна тетрадка за практика

Изтеглете тази учебна тетрадка, за да се упражнявате, докато четете тази статия.

VBA Concatenate Function.xlsm

Въведение във функцията VBA Concatenate

Както споменахме, Excel няма вградена функция за VBA Concatenate, но можем да я накараме да работи като функция, като комбинираме различни низове с оператори. Тук използваме амперсанд (&) като наш оператор.

⟴ Синтаксис

String1 = " Първи текст"

String2 = " Втори текст"

⟴ Върната стойност

Return_value = String1 & String2

4 различни приложения на функцията VBA Concatenate в Excel

Тук ще използваме 4 различни подхода за извършване на процеса на конкатенация. Ще прилагаме различни оператори в комбинация с VBA код, за да постигнете това.

1. използване на оператора Ampersand (&) за обединяване на клетки във VBA Concatenate

Както е показано на долната екранна снимка, имаме колекция от данни с две колони, като в едната колона са имената, а в другата - фамилиите. Чрез обединяване на двете колони вече можем да получим целите имена. 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. Използване на оператора Plus (+) за обединяване на клетки във VBA Concatenate

Както е описано в предишния раздел, използвахме амперсандата (&) за обединяване на низове от клетки. Можете да получите същия резултат, като приложите оператора плюс (+) вместо знака амперсанд (&) оператор. За да го направите, следвайте следните стъпки.

Стъпка 1:

  • За да отворите Macro в Excel, натиснете Alt + F11 .
  • Кликнете върху Вмъкване на и изберете
  • След като отворите страницата на програмата, поставете следното VBA
 Sub Concatenate2() Dim String1 As String Dim String2 As String Dim full_string As String 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 примера)

Подобни четива:

  • Как да извикате Sub във VBA в Excel (4 примера)
  • Връщане на стойност във функция на VBA (както масиви, така и стойности, които не са масиви)
  • Как да използвате функцията VBA DIR в Excel (7 примера)
  • Използване на функцията VBA UCASE в Excel (4 примера)
  • Как да използваме функцията InStr във VBA (3 примера)

3. Добавяне на няколко колони чрез VBA Concatenate

В предишните два подхода обсъдихме как да комбинираме две клетки. Ако обаче искаме да го приложим към цялата колона, добавянето една по една ще отнеме много време. Ще ви научим как да добавяте няколко колони изцяло с VBA код за това.

Стъпка 1:

  • Първо, за да отворите Macro натиснете 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 

Тук,

  • С работни листове("Sheet3") е името на текущия работен лист.
  • LastRow = .Cells(.Rows.Count, "B").End(xlUp).Row е името на първата колона.
  • С .Range("E5:E" & LastRow) е диапазонът от клетки за връщане на резултата.
  • .Formula = "=B5&C5" е формулата за присъединяване на първата клетка от обхвата.

Стъпка 2:

  • След това, накрая, запишете и натиснете F5 за да стартирате програмата.

В резултат на това ще получите резултатите изцяло в колона.

Прочетете още: Как да използвате VBA Rnd в Excel (4 метода)

4. Присъединяване на няколко реда с помощта на VBA Concatenate

В допълнение към добавянето на няколко колони можем да приложим и VBA Както е показано на снимката по-долу, искаме да обединим трите реда в един. За да обедините редовете, следвайте простите стъпки по-долу.

Стъпка 1:

  • За активиране на Macro в 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 

Тук,

  • Задайте SourceRange = Range ("B5:D5") е обхватът на изходната клетка.
  • Range("B8").Value = Trim(i) е номерът на клетката за връщане.

Стъпка 2:

  • Накрая запишете програмата и натиснете F5 да се изпълнява.

Така крайният резултат от конкатенацията на трите реда ще бъде показан в клетката B8 .

Прочетете още: Как да скриете горните редове в Excel (7 метода)

Заключение

В заключение се надявам, че тази публикация е предоставила ясни инструкции за това как да използвате VBA конкатенация в Excel по различни начини. Всички тези техники трябва да бъдат усвоени и използвани върху вашите данни. Разгледайте книгата за упражнения и използвайте новопридобитите си знания. Благодарение на вашата любезна подкрепа сме мотивирани да продължим да създаваме семинари като този.

Моля, не се колебайте да се свържете с нас, ако имате някакви въпроси. Моля, съобщете ни какво мислите в полето за коментари по-долу.

Сайтът Exceldemy Екипът постоянно ще отговаря на вашите въпроси.

Хю Уест е опитен обучител и анализатор на Excel с над 10 години опит в индустрията. Има бакалавърска степен по счетоводство и финанси и магистърска степен по бизнес администрация. Хю има страст към преподаването и е разработил уникален подход на преподаване, който е лесен за следване и разбиране. Неговите експертни познания по Excel са помогнали на хиляди студенти и професионалисти по целия свят да подобрят уменията си и да постигнат отлични резултати в кариерата си. Чрез своя блог Хю споделя знанията си със света, като предлага безплатни уроци за Excel и онлайн обучение, за да помогне на хората и фирмите да достигнат пълния си потенциал.