ВБА средња функција - издвајање знакова из средине низа

Преглед садржаја

Овај водич ће показати како се користи функција Мид ВБА за издвајање знакова из средине текстуалног низа.

Мид Фунцтион

Средња функција Дохвати н знакова

ВБА Мид функција враћа н знакова из низа који почиње од позиције м:

123456789 Подпоредни пример_1 ()МсгБок Мид ("АБЦДЕФГХИ", 4, 1) 'Резултат је: "Д"МсгБок Мид ("АБЦДЕФГХИ", 4, 2) 'Резултат је: "ДЕ"МсгБок Мид ("АБЦДЕФГХИ", 4, 50) 'Резултат је: "ДЕФГХИ"МсгБок Мид ("АБЦДЕФГ хИ", 6, 1) 'Резултат је: "Ф"МсгБок Мид ("АБЦДЕФГ хИ", 6, 2) 'Резултат је: "ФГ"МсгБок Мид ("АБЦДЕФГ хИ", 6, 4) 'Резултат је: "ФГ х"Енд Суб

Средња функција Унеси н знакова у променљиву

Као што је горе приказано, низ можете дефинисати једноставним уносом текста окруженог наводницима. Али МИД функција ће такође радити са променљивим стринговима. Ови примери ће издвојити н знакова из низа почевши од позиције м.

12345678 Подпоредни пример_2 ()Дим СтрЕк Ас Стринг 'Дефинишите променљиву низаСтрЕк = "АБЦДЕФГХИ"МсгБок Мид (СтрЕк, 2, 1) 'Резултат је: "Б"МсгБок Мид (СтрЕк, 2, 2) 'Резултат је: "БЦ"МсгБок Мид (СтрЕк, 2, 50) 'Резултат је: "БЦДЕФГХИ"Енд Суб

Средња функција Преузмите н знакова из ћелије

Низови се могу дефинисати у ВБА коду, али такође можете користити вредности из ћелија. Прочитајте вредност ћелије, задржите је у променљивој стринга и извуците н знакова из те вредности ћелије радног листа почевши од позиције м.

1234567891011 Подпоредни пример_3 ()Дим СтрЕк Ас Стринг 'Дефинишите променљиву низа„Прочитајте вредност ћелије А1 у листу 1СтрЕк = ТхисВоркбоок.Ворксхеетс ("Схеет1"). Ранге ("А1"). Валуе'За овај пример вредност ћелије А1 је "Нека сила буде са вама"МсгБок Мид (СтрЕк, 4, 6) 'Резултат је: "Ф" (Обратите пажњу на размак на почетку)МсгБок Мид (СтрЕк, 2, 8) 'Резултат је: "аи тхе Ф"МсгБок Мид (СтрЕк, 3, 4) 'Резултат је: "и тх"Енд Суб

Средња функција Замена н знакова

У горе наведеним примерима функција Мид није променила оригинални низ. Вратио је део, остављајући оригинални низ нетакнут. Средња функција се може користити за замену знакова у низу.

12345678910111213141516171819202122 Подпоредни пример_4 ()Дим СтрЕк Ас Стринг 'Дефинишите променљиву низаПодпоредни пример_4 ()Дим СтрЕк Ас Стринг 'Дефинишите променљиву низаСтрЕк = "Нека сила буде са вама"Средњи (СтрЕк, 5, 1) = "ВВКСИЗ"Резултат МсгБок СтрЕк -а је: "Нека Хорсе буде са вама"'Средња функција је пронашла позицију 5 и заменила 1 знак у оригиналном низуСтрЕк = "Нека сила буде са вама"Средњи (СтрЕк, 5, 3) = "ВВКСИЗ"Резултат МсгБок СтрЕк -а је: "Нека ВВКС Хорце буде са вама"„Средња функција је пронашла позицију 5 и заменила 3 ​​знака у оригиналном низуСтрЕк = "Нека сила буде са вама"Средњи (СтрЕк, 5, 8) = "ВВКСИЗ"Резултат МсгБок СтрЕк -а је: "Нека ВВКСИЗорце буде са вама"„Средња функција је пронашла позицију 5 и покушала да замени 8 знакова.'"ВВКСИЗ" има само 5 знакова, па је само 5 знакова замењено.Енд Суб

Средња функција Издвоји другу реч из фразе

Можемо користити функцију ВБА Мид са функцијом ВБА Инстр да бисмо добили другу реч у тексту.

ВБА ИнСтр функција може вратити позицију знака унутар текста.

1 ИнСтр ("Две речи", "") 'Резултат је 4

Можемо да користимо ИнСтр за проналажење првог размака, а затим можемо поново да користимо ИнСтр за почетак претраге после првог размака да пронађемо други размак у тексту. Коначно, можемо користити функцију Мид за издвајање речи јер знамо почетну позицију друге речи и њену дужину (разлика између две позиције размака).

12345678910111213141516171819202122232425 Подпоредни пример_5 ()Дим СтрЕк Ас Стринг 'Дефинишите променљиву низаЗатамните СтартПос као цео бројДим ЕндПос Ас ИнтегерДим СецондВорд Ас СтрингСтрЕк = "Јамес Еарл Јонес је глумац"СтартПос = ИнСтр (СтрЕк, "")"Резултат је 6'Нађи положај првог размакаЕндПос = ИнСтр (СтартПос + 1, СтрЕк, "")"Резултат је 11'Пронађите положај другог простора покретањем претраживања након првог размакаСецондВорд = Мид (СтрЕк, СтартПос + 1, ЕндПос - СтартПос - 1)'Средина издваја знакове који почињу после првог размака (СтартПос +1)„Мид користи и дужину друге речи.'То је разлика између позиција размака -1МсгБок СецондВорд'Резултат је ЕарлЕнд Суб
wave wave wave wave wave