VBA Mid функция - Извличане на знаци от средата на низа

Съдържание

Този урок ще покаже как да използвате функцията Mid VBA за извличане на знаци от средата на текстов низ.

Средна функция

Средна функция Вземете n знака

Функцията VBA Mid връща n знака от низ, започващ от позиция m:

123456789 Подсредник Пример_1 ()MsgBox Mid ("ABCDEFGHI", 4, 1) 'Резултатът е: "D"MsgBox Mid ("ABCDEFGHI", 4, 2) 'Резултатът е: "DE"MsgBox Mid ("ABCDEFGHI", 4, 50) 'Резултатът е: "DEFGHI"MsgBox Mid ("ABCDEFG hI", 6, 1) 'Резултатът е: "F"MsgBox Mid ("ABCDEFG hI", 6, 2) 'Резултатът е: "FG"MsgBox Mid ("ABCDEFG hI", 6, 4) 'Резултатът е: "FG h"End Sub

Средна функция Вземете n знака в променлива

Както е показано по -горе, можете да дефинирате низ просто като въведете текст, заобиколен от кавички. Но MID функцията ще работи и с низови променливи. Тези примери ще извлекат n знака от низ, започвайки от позиция m.

12345678 Подсредник Пример_2 ()Dim StrEx As String 'Определете низова променливаStrEx = "ABCDEFGHI"MsgBox Mid (StrEx, 2, 1) 'Резултатът е: "B"MsgBox Mid (StrEx, 2, 2) 'Резултатът е: "BC"MsgBox Mid (StrEx, 2, 50) 'Резултатът е: "BCDEFGHI"End Sub

Средна функция Вземете n знака от клетка

Низовете могат да бъдат дефинирани във VBA код, но също така можете да използвате стойности от клетки. Прочетете стойността на клетка, запазете я в низова променлива и извлечете n знака от тази стойност на клетката на работния лист, започвайки от позиция m.

1234567891011 Подсредата Пример_3 ()Dim StrEx As String 'Определете низова променлива„Прочетете стойността на клетка A1 в работен лист Sheet1StrEx = ThisWorkbook.Worksheets ("Sheet1"). Range ("A1"). Value„За този пример стойността на клетка A1 е„ Нека Силата бъде с вас “MsgBox Mid (StrEx, 4, 6) 'Резултатът е: "F" (Забележете интервала в началото)MsgBox Mid (StrEx, 2, 8) 'Резултатът е: "ay the F"MsgBox Mid (StrEx, 3, 4) 'Резултатът е: "y th"End Sub

Средна функция Замяна на n знака

В горните примери функцията Mid не промени оригиналния низ. Той върна част от него, оставяйки оригиналния низ непокътнат. Средната функция може да се използва за замяна на символи в низ.

12345678910111213141516171819202122 Sub MidExample_4 ()Dim StrEx As String 'Определете низова променливаSub MidExample_4 ()Dim StrEx As String 'Определете низова променливаStrEx = "Нека Силата бъде с вас"Средно (StrEx, 5, 1) = "VWXYZ"Резултатът на MsgBox StrEx е: „Нека Vhe Horce бъде с вас“„Средната функция намери позиция 5 и замени 1 знак в оригиналния низStrEx = "Нека Силата бъде с вас"Средно (StrEx, 5, 3) = "VWXYZ"Резултатът на MsgBox StrEx е: „Нека VWX Horce бъде с вас“„Средната функция намери позиция 5 и замени 3 знака в оригиналния низStrEx = "Нека Силата бъде с вас"Средна (StrEx, 5, 8) = "VWXYZ"Резултатът на MsgBox StrEx е: „Нека VWXYZorce бъде с вас“„Средната функция намери позиция 5 и се опита да замени 8 знака."" VWXYZ "има само 5 знака, така че само 5 знака са заменени.End Sub

Средна функция Извличане на втора дума от фраза

Можем да използваме функцията VBA Mid с функцията VBA Instr, за да получим втората дума в текст.

Функцията VBA InStr може да върне позицията на знак в текста.

1 InStr ("Две думи", "") 'Резултатът е 4

Можем да използваме InStr, за да намерим първото пространство, след което можем да използваме отново InStr, започвайки търсенето след първото пространство, за да намерим второто пространство в текста. И накрая, можем да използваме функция Mid, за да извлечем думата, защото знаем началната позиция на втората дума и нейната дължина (разликата между двете позиции на интервали).

12345678910111213141516171819202122232425 Sub MidExample_5 ()Dim StrEx As String 'Определете низова променливаЗатъмнете StartPos като цяло числоDim EndPos като цяло числоDim SecondWord As StringStrEx = "Джеймс Ърл Джоунс е актьор"StartPos = InStr (StrEx, "")"Резултатът е 6- Намерете позицията на първото пространствоEndPos = InStr (StartPos + 1, StrEx, "")"Резултатът е 11„Намерете позицията на второто пространство, като започнете търсене след първото пространствоSecondWord = Mid (StrEx, StartPos + 1, EndPos - StartPos - 1)„Mid извлича знаците, започващи след първото интервал (StartPos +1)„Mid използва и дължината на втората дума.„Това е разликата между интервалите позиции -1MsgBox SecondWord- Резултатът е ЪрлEnd Sub
wave wave wave wave wave