Как да използвате функцията Mid на VBA в Excel (3 примера)

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

Една от най-важните и широко използвани функции, които използваме при работа с VBA в Excel е Средна функция на VBA . Той приема низ като вход и връща на изхода даден брой символи от средата на низа. Днес в тази статия ще ви покажа как можете да използвате Средна функция на VBA с подходящи примери и илюстрации.

Това ще върне 9 символите от символния низ "Анджела Катрин Невилс" , като се започне от 8. характер. Това е "Катрин" .

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

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

VBA Mid Function.xlsm

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

Цел на функцията:

Сайтът В средата на Функцията приема стойност като вход и връща даден брой символи, започващи от дадена позиция на стойността, като изход.

Стойността може да бъде низ, число или дори boolean .

Например, ако вмъкнете Mid("Angela Catherine Nevills",8,9), тя ще върне "Catherine" .

Ако вмъкнете Mid(12345,2,3) , ще получите 234.

И вмъкнете Mid(False,2,3) , ще получите als .

Синтаксис:

Синтаксисът на Средна функция на VBA е:

=Mid(String,Start като Long,[Length])

Аргументи:

Аргумент Задължително / по избор Обяснение
Редица Изисква се Низът, от който ще бъдат върнати определен брой символи.
Начало Изисква се Началният символ на низ, който ще бъде върнат.
Дължина По избор Броят на символите, които ще бъдат върнати. По подразбиране е 1.

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

Възстановява даден брой символи от средата на низ, започвайки от дадена позиция.

3 примера за функцията Mid на VBA в Excel

Този път ще разгледаме Средна функция на VBA подробно с няколко примера.

1. отделяне на даден брой символи от средата на някои идентификатори с помощта на функцията Mid на VBA в Excel

Тук имаме набор от данни с Идентификатори и Имена на някои служители на компания, наречена Saturn Group.

Тук 4. към 7. символите на всеки идентификатор означават годината на постъпване на работа на съответния служител.

Сега ще разработим Дефинирана от потребителя функция като използвате Средна функция на VBA която ще извлече годината на присъединяване на всеки служител от Идентификатор на служителя .

Можете да използвате следното VBA код:

Код VBA:

 Функция Joining_Year(ID) Joining_Year = Mid(ID, 4, 4) Край на функцията 

Забележка: Този код създава функция, наречена Година на присъединяване .

Изход:

Изпълнете тази функция във всяка клетка на работния лист с ID като аргумент.

Тук, в клетката D4 , въведохме формулата:

=Година на присъединяване(B4)

Той връща годината на постъпване на първия служител, 2021 .

Сега можете да плъзнете Дръжка за пълнене за да получите годините на присъединяване на останалите служители.

Обяснение на кодекса:

  • Първо, декларираме функция, наречена Година на присъединяване която приема ID като вход от реда Функция Joining_Year(ID) .
  • След това извличаме 4 символи от идентификатора, започвайки от позиция 4 , по линията Присъединяване_година = Mid(ID, 4, 4) .
  • Линията Край на функцията декларира края на функцията.

2. Извличане на разширенията от някои имейл адреси с помощта на функцията Mid на VBA в Excel

Сега добавихме нова колона към набора от данни, която съдържа имейл адресите на служителите.

Този път ще извлечем разширенията на имейл адресите с помощта на В средата на функция на VBA .

Сайтът Код VBA ще бъде:

Код VBA:

 Функция Extension(Email_Address) For i = 1 To Len(Email_Address) If Mid(Email_Address, i, 1) = "@" Then Extension = Mid(Email_Address, i + 1, Len(Email_Address) - (i + 4)) End If Next i End Function 

Забележка: Този код създава функция, наречена Удължение .

Изход:

Изпълнете тази функция във всяка клетка на работния лист с Имейл адрес като аргумент.

Тук, в клетката E4 , въведохме формулата:

=Разширение(D4)

Той върна разширението на първия имейл адрес.

След това можете да плъзнете Дръжка за пълнене за да извлечете разширенията на всички имейл адреси.

Обяснение на кодекса

  • Първо, декларираме функция, наречена Удължение който приема всяко име като вход от реда Функция Разширение(Email_Address) .
  • След това започваме итерация с a for-loop която проверява всеки символ на Имейл адрес за да проверите дали е @ или не по линията If Mid(Email_Address, i, 1) = "@" Then .
  • Ако намери @ , след което извлича необходимото разширение от Имейл адрес по линията Extension = Mid(Email_Address, i + 1, Len(Email_Address) - (i + 4)) .
  • Накрая обявяваме края на функцията.

3. Проверка на някои текстове, за да видите дали съдържат определен текст или не

Една от най-важните употреби на Средна функция е да се провери дали даден текст съдържа определен текст или не.

Нека разработим функция, която да проверява дали Имейл адреси съдържа термина "gmail" или не.

Можете да използвате следното VBA код:

Код VBA:

 Функция Checking(Text1, Text2) За i = 1 До Len(Text1) Ако Mid(Text1, i, Len(Text2)) = Text2 Тогава Checking = "Да" Изход за В противен случай Checking = "Не" Край на If Следващ i Край на функцията 

Забележка: Този код създава функция, наречена Проверка на .

Изход:

Изпълнете тази функция във всяка клетка на работния лист с два текста като аргумент.

Тук, в клетката E4 , въведохме формулата:

=Checking(D4, "gmail")

Той се е върнал да защото първият имейл адрес е Gmail адрес.

След това можете да плъзнете Дръжка за пълнене за да направите същото за всички имейл идентификатори.

Обяснение на кодекса:

  • Първо, декларираме функция, наречена Проверка на която приема два текста като аргументи от реда Функция Проверка(Text1,Text2) .
  • След това стартираме цикъл for, който проверява всеки сегмент от Текст1 започвайки от позиция 1 , за да проверите дали е равно на Текст2 или не, по реда Ако Mid(Text1, i, Len(Text2)) = Text2 Тогава .
  • Ако намери Текст2 , след което връща "Да" , в противен случай връща "Не" .
  • Накрая завършваме функцията с линията Край на функцията .

Нещата, които трябва да запомните

  • Сайтът 1. аргумент на Средна функция не е задължително винаги да бъде низ. Може да бъде низ , a номер или дори boolean стойност.
  • Но 2. и 3. аргументите трябва да са номера . Те могат да бъдат цели числа или фракции но трябва да бъде номера . Ако те са фракции , тогава Средна функция ще ги превърне в най-близката цели числа .

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