Fruitsekta.ru

Мир ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Right vba excel

Работа со строками в VBA: InStr, LCASE, UCase, Left, Right, Mid, LTrim, RTrim, Trim, Len, Replace, Space, StrComp, String, StrReverse

В этой статье разберем работу со строками в VBA на примерах функций InStr, LCASE, UCase, Left, Right, Mid, LTrim, RTrim, Trim, Len, Replace, Space, StrComp, String, StrReverse.

Строки — это последовательность символов, которая может состоять либо из алфавитов, цифр, специальных символов, либо из всех них. Переменная называется строкой, если она заключена в двойные кавычки «».

Синтаксис

Примеры

Строковые функции

Существуют предопределенные функции VBA String, которые помогают разработчикам эффективно работать со строками. Ниже приведены методы String, поддерживаемые в VBA. Пожалуйста, нажмите на каждый из методов, чтобы знать подробно.

Название функции и описание

InStr

Функция InStr возвращает первое вхождение одной строки в другую строку. Поиск происходит слева направо.

Синтаксис

Параметр Описание

  • Пуск — необязательный параметр. Указывает начальную позицию для поиска. Поиск начинается с первой позиции слева направо.
  • String1 — требуемый параметр. Строка для поиска.
  • String2 — требуемый параметр. Строка, по которой выполняется поиск String1.
  • Compare — Необязательный параметр. Указывает сравнение строк.Он может принимать следующие значения.
  • 0 = vbBinaryCompare — выполняет двоичное сравнение (по умолчанию)
  • 1 = vbTextCompare — выполняет сравнение текста

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 : 6
Line 2 : 0
Line 3 : 8
Line 4 : 9
Line 5 : 2
Line 6 : 16
Line 7 : 11

Возвращает первое вхождение указанной подстроки. Поиск происходит слева направо.

Функция InStrRev возвращает первое вхождение одной строки в другую строку. Поиск происходит справа налево.

Синтаксис

Параметр Описание

  • String1 — требуемый параметр. Строка для поиска.
  • String2 — требуемый параметр. Строка, по которой выполняется поиск String1.
  • Пуск — необязательный параметр. Указывает начальную позицию для поиска. Поиск начинается с первой позиции справа налево.
  • Compare — Необязательный параметр. Указывает сравнение строк.Он может принимать следующие значения.
  • 0 = vbBinaryCompare — выполняет двоичное сравнение (по умолчанию)
  • 1 = vbTextCompare — выполняет сравнение текста

пример

Добавьте кнопку и установите следующую функцию.

После выполнения вышеуказанного скрипта он производит следующий результат.

Line 1 : 6
Line 2 : 6
Line 3 : 8
Line 4 : 0
Line 5 : 2
Line 6 : 2
Line 7 : 0

Возвращает первое вхождение указанной подстроки. Поиск происходит справа налево.

LCASE

Функция LCase возвращает строку после преобразования введенной строки в строчные буквы.

Синтаксис

пример

Добавьте кнопку и поместите следующую функцию внутри нее.

После выполнения вышеуказанного скрипта он производит следующий вывод.

Line 1 : microsoft vbscript
Line 2 : ms vbscript
Line 3 : microsoft

Возвращает нижний регистр указанной строки.

UCase

Функция UCase возвращает строку после преобразования введенной строки в буквы буквы UPPER.

Синтаксис

пример

Добавьте кнопку и поместите следующую функцию внутри нее.

После выполнения вышеуказанного скрипта он производит следующий вывод.

Line 1 : MICROSOFT VBSCRIPT
Line 2 : MS VBSCRIPT
Line 3 : MICROSOFT

Возвращает верхний регистр указанной строки.

Функция Left возвращает указанное количество символов с левой стороны данной входной строки.

Синтаксис

Параметр Описание

  • String — обязательный параметр. Строка ввода, из которой указанное число символов должно быть возвращено с левой стороны.
  • Длина — требуемый параметр. Целое число, определяющее количество возвращаемых символов.

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 : Mi
Line 2 : MS VB
Line 3 : microsoft

Возвращает определенное количество символов с левой стороны строки.

Right

Функция Right возвращает указанное количество символов с правой стороны данной входной строки.

Синтаксис

Параметр Описание

  • String — обязательный параметр. Строка ввода, из которой указанное число символов должно быть возвращено с правой стороны.
  • Длина — требуемый параметр. Целое число, которое задает количество возвращаемых символов.

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 : pt
Line 2 : CRIPT
Line 3 : microsoft

Возвращает определенное количество символов с правой стороны строки.

Mid функция возвращает указанное количество символов из заданной входной строки.

Синтаксис

Параметр Описание

  • String — обязательный параметр. Строка ввода, из которой задано количество символов, которые нужно вернуть.
  • Начало — требуемый параметр. Целое число, определяющее начальную позицию строки.
  • Длина — необязательный параметр. Целое число, определяющее количество возвращаемых символов.

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 : icrosoft VBScript
Line 2 : icros
Line 3 : osoft V

Возвращает определенное количество символов из строки на основе указанных параметров.

LTrim

Функция Ltrim удаляет пробелы с левой стороны строки.

Синтаксис

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете функцию, она производит следующий вывод.

After Ltrim : Microsoft VBScript

Возвращает строку после удаления пробелов в левой части указанной строки.

RTrim

Функция Rtrim удаляет пробелы с правой стороны строки.

Синтаксис

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

After Rtrim : Microsoft VBScript

Возвращает строку после удаления пробелов в правой части указанной строки.

Функция Trim удаляет как ведущее, так и конечное пустое пространство данной входной строки.

Синтаксис

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

After trim : Microsoft VBScript

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

Функция Len возвращает длину данной входной строки, включая пробелы.

Синтаксис

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Length of var1 is : 18
Length of var2 is : 36

Возвращает длину данной строки.

Replace

Функция Replace заменяет указанную часть строки на определенную строку, указанное количество раз.

Синтаксис

Параметр Описание

  • String — обязательный параметр. Строка ввода, которую нужно искать для замены.
  • Find — требуемый параметр. Часть строки, которая будет заменена.
  • Replacewith — обязательный параметр. Строка замены, которая будет заменена на параметр find.
  • Start — необязательный параметр. Задает начальную позицию, из которой нужно искать и заменять строку. Значение по умолчанию — 1.
  • Count — необязательный параметр. Указывает количество раз, которое должна выполняться замена.
  • Compare — Необязательный параметр. Указывает метод сравнения, который будет использоваться. Значение по умолчанию — 0.
  • 0 = vbBinaryCompare — выполняет двоичное сравнение
  • 1 = vbTextCompare — выполняет текстовое сравнение
Читать еще:  Excel формулы самоучитель

пример

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1: This is MS VBScript Programming
Line 2: This is vbScript Programming
Line 3: Th## ## VBScript Programming
Line 4: ## VBScript Programming
Line 5: Thi## i## VBScript Programming
Line 6: This is VBSc##ipt P##og##amming
Line 7: This is VBScrip## Programming

Возвращает строку после замены строки другой строкой.

Space

Функция Space заполняет строку конкретным количеством пробелов.

Синтаксис

Параметр Описание

Номер — требуемый параметр. Количество пробелов, которые мы хотим добавить к данной строке.

пример

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Заполняет строку указанным количеством пробелов.

StrComp

Функция StrComp возвращает целочисленное значение после сравнения двух заданных строк. Он может возвращать любое из трех значений -1, 0 или 1 на основе входных строк для сравнения.

  • Если String1 меньше String2, то StrComp возвращает -1
  • Если String1 равно String2, то StrComp возвращает 0
  • Если String1 больше String2, то StrComp возвращает 1

Синтаксис

Параметр Описание

  • String1 — требуемый параметр. Первое строковое выражение.
  • String2 — требуемый параметр. Второе строковое выражение.
  • Compare — Необязательный параметр. Указывает сравнение строк.Он может принимать следующие значения.
  • 0 = vbBinaryCompare — выполняет двоичное сравнение (по умолчанию)
  • 1 = vbTextCompare — выполняет сравнение текста

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 :0
Line 2 :1
Line 3 :1
Line 4 :0
Line 5 :1

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

String

Функция String заполняет строку указанным символом для указанного количества раз.

Синтаксис

Параметр Описание

  • Номер — требуемый параметр. Целочисленное значение, которое будет повторяться в течение определенного количества раз против параметра символа.
  • Символ — требуемый параметр. Значение символа, которое должно повторяться определенное количество раз.

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 :$$$
Line 2 :****
Line 3 :ddddd
Line 4 :AAAAAA

Возвращает строку с указанным символом для указанного количества раз.

StrReverse

Функция StrReverse меняет указанную строку.

Синтаксис

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 : TPIRCSBV
Line 2 : tpircSBV tsriF yM
Line 3 : 54.321

Возвращает строку после изменения последовательности символов данной строки.

Excel VBA Left and Right functions

The Left and Right functions are used to chop characters from a string. Use Left to chop characters from the start of the string; use Right to chop characters starting from the end of the string. In between the round brackets of Left and Right you type the number of characters you want to chop. If you miss out the number of characters to chop then Left and Right extract just one character from the start or end of the string. Some example might clear things up.

Create a new Sub and try this code out (you can use your spreadsheet from the previous section for this:

Dim Email As String

MsgBox Left(Email, 9)

MsgBox Right(Email, 9)

The first two lines just set up a String variable and place an email address in the Email variable. The third line is a message box that uses the Left function:

MsgBox Left(Email, 9)

When you run the code you’ll see that the message box displays the first 9 characters of the email address, everything to the left of the @ sign.

The fourth line is this:

MsgBox Right(Email, 9)

The Right function will display 9 characters starting from the final character in the email address, everything to the right of the @ sign.

That’s fairly straightforward, we’re sure you’ll agree. But now for a more complex use of Left and Right.

Suppose you have a full name in cell A1 in this format:

However, suppose you want to have the surname first then the first name. This format:

You can use Left, Right and the InStr Functions to achieve this.

Create a new Sub and call it LastFirst. Now set up four variables, three Strings and an Integer:

Dim FullName As String
Dim FirstName As String
Dim LastName As String
Dim SpacePos As Integer

Place the full name in the FullName variable:

FullName = «David Gilmour»

Now use InStr to locate the position of the space in the name:

To get just the first name you can start at the beginning of the full name and go up to the SpacePos minus 1:

FirstName = Left(FullName, SpacePos — 1)

The reason why you need to deduct 1 from the SpacePos variable is because the InStr function will return the position of the space, a value of 6 for our name. The final character of the first name, however, is 1 less than this, as David only has 5 characters in it.

To get the last name, we need something slightly different. The starting position is the length of the full name minus the length of the first name. This will get us the correct number of characters to grab starting from the right of the name. The code is this:

LastName = Right(FullName, Len(FullName) — Len(FirstName))

So as the final parameter of Right we have this:

This uses the Len function to get the length of the FullName and FirstName variables.

Finally, display the results in a message box:

MsgBox (LastName & «, » & FirstName)

We have the LastName variable first and then the FirstName. The two are separated by concatenation symbols (&). We also need a comma, and we have this in double quotes so that VBA sees it as text. So we’re saying, «Join together the Last Name, then a comma, then the First Name».

Читать еще:  Excel найти дубликаты в столбце

The whole of your code, then, should look like this:

Run your code and you should see this message box:

Click OK to return to your code. Now type a new name. Change this line, for example:

FullName = «David Gilmour»

FullName = «William Shakespeare»

Run your code again and the message box will display this:

That final exercise illustrates that the more string functions you know and are comfortable with the more you can achieve in your programming.

(NOTE: The above code only works for names that have two parts. It will fall down if the name is, say, David Lloyd George. But there is an easier way to do the exercise above, and one that will cover names of any length: by using the Split function. You’ll see how to achieve all this after we cover something called Arrays. If you want to jump ahead, the page is here: Arrays and the Split function.)

In the next lesson, we’ll look at one final string function — Mid.

Функции VBA для работы с текстом

  • ASC ()— эта функция позволяет вернуть числовой код для переданного символа. Например, ASC( «D» ) вернет 68. Эту функцию удобно использовать для того, чтобы определить следующую или предыдущую букву. Обычно она используется вместе с функцией Chr(), которая производит обратную операцию — возвращает символ по переданному его числовому коду.Варианты этой функции — AscB() и AscW():
    • AscB () — возвращает только первый байт числового кода для символа.
    • AscW () — возвращает код для символа в кодировке Unicode
  • Chr () — возвращает символ по его числовому коду. Может использоваться в паре с функцией Asc(), но чаще всего её применяют, когда нужно вывести служебный символ (например кавычки — » ), т.к. кавычки просто так в VBA-коде не ввести(нужно ставить двойные). Я обычно именно эту функцию и использую.

    Dim sWord As String sWord = Chr(34) & «Слово в кавычках» & Chr(34)

    Есть варианты этой функции — ChrB() и ChrW(). Работают аналогично таким же вариантам для функции Asc().
    InStr () и InStrRev ()— одна из самых популярных функций. Позволяет обнаружить в теле строковой переменной символ или последовательность символов и вернуть их позицию. Если последовательность не обнаружена, то возвращается 0.

    Dim sStr As String sStr = «w» If InStr(1, «Hello, World!», sStr, vbTextCompare) > 0 Then MsgBox «Искомое слово присутствует!» Else MsgBox «Искомое слово отсутствует!» End If

    Разница функций в том, что InStr() ищет указанное слово от начала строки, а InStrRev() с конца строки
    Left (), Right (), Mid ()— возможность взять указанное вами количество символов из существующей строковой переменной слева, справа или из середины соответственно.

    Dim sStr As String sStr = «Hello, World!» MsgBox Mid(sStr, 1, 5)

    Dim sStr As String sStr = «Hello, World!» MsgBox Replace(sStr, «Hello», «Bay»)

    Dim sStr As String sStr = «Hello, World!» MsgBox StrConv(«Hello, World!», vbUpperCase)

    В качестве второго параметра параметра могут применяться константы:

    • vbUpperCase: Преобразует все текстовые символы в ВЕРХНИЙ РЕГИСТР
    • vbLowerCase: Преобразует все текстовые символы в нижний регистр
    • vbProperCase: Переводит первый символ каждого слова в Верхний Регистр
    • *vbWide: Преобразует символы строки из однобайтовых в двухбайтовые
    • *vbNarrow: Преобразует символы строки из двухбайтовых в однобайтовые
    • **vbKatakana: Преобразует символы Hiragana в символы Katakana
    • **vbHiragana: Преобразует символы Katakana в символы Hiragana
    • ***vbUnicode: Преобразует строку в Юникод с помощью кодовой страницы системы по умолчанию
    • ***vbFromUnicode: Преобразует строку из Юникод в кодовую страницу системы по умолчанию

    * применимо для локализацией Дальнего востока
    ** применимо только для Японии
    *** не поддерживается операционными системами под управлением Macintosh

  • StrReverse () — «перевернуть» строку, разместив ее символы в обратном порядке. Функция работает только начиная от Excel 2000 и выше. Пример использования функции, а так же иные методы переворачивания слова можно посмотреть в этой статье: Как перевернуть слово?
  • Tab () — еще одна функция, которая используется для форматирования вывода на консоль. Размножает символы табуляции в том количестве, в котором вы укажете. Если никакое количество не указано, просто вставляет символ табуляции. Для вставки символа табуляции в строковое значение можно также использовать константу vbTab.
  • String () — позволяет получить строку из указанного количества символов (которые опять-таки указываются Вами). Обычно используются для форматирования вывода совместно с функцией Len().
  • VBA Right

    VBA Right Function

    • VBA Right is categorized under text or String function, useful to chop characters from a string.
    • It can be used as either procedure or function in a vba editor window.
    • It is frequently used to extract a substring from a full-text string, i.e. either to pull out the last name from a full name or to extract email extension from email id.
    • VBA Right function allows you to extract the right-side part of the string from a full-text string.
    • VBA string functions do not change the original string. Usually, they will return a new string based on the function you input in the code.

    VBA RIGHT function returns a substring from within a supplied text or a string i.e. starting with the right-most character (from the end of the string).

    Syntax of Right in Excel VBA

    The syntax for the VBA Right function in excel is as follows:

    Valuation, Hadoop, Excel, Mobile Apps, Web Development & many more

    Right(Str,Length)

    • Str: It is a text String from where you need to extract the specified number of characters.
    • Length: Number of characters to extract or to return from starting from extreme rightmost character or position, it should be the numeric expression which indicates how many characters to return.

    Note: For length argument, If it is mentioned 0, it will return a zero-length string (“”). If the length argument entered is equal to the number of characters of string or if it is greater than the number of characters of string then it will result in or return an entire string. If length is Null or less than 0, it will return an error message

    How to Use VBA Right Function in Excel?

    We will learn how to use a VBA Right function with example in excel.

    Example #1 – VBA Right

    Step 1: Select or click on Visual Basic in the Code group on the Developer tab or you can directly click on Alt + F11 shortcut key.

    Step 2: Insert a module from the insert tab to start writing codes in VBA.

    Step 3: Under the Microsoft Excel objects, right-click on sheet 1 (VB_RIGHT) Insert and under the menu section select Module so that a new blank module gets created.

    Now the blank module is created, it is also called a code window, where you can start writing VBA RIGHT function or procedure codes.

    Example #2 – VBA Right Function Code

    Step 1: Suppose, I have the word “THURSDAY” and I want to extract the right side word i.e. “DAY” from this sentence with the help of VB RIGHT function macro code.

    Step 1: In the VBA editor, I have a given a name as VBA_R() after typing Sub.

    Code:

    Step 2: As VBA RIGHT function is categorized under string type Variables, DIM (Dimension) is used in a VBA code to declare a variable name, it’s typing.

    In VBA, you need to always declare initially that you are setting up a variable. This is done (mostly) with the word Dim. DIM is used to declare variable & storage allocation for the variable.

    Code:

    Step 3: After declaring a variable, Assign a value to this variable with the help of the RIGHT function.

    Code:

    First parameter or argument is String i.e. It is a text String from where you need to extract the specified number of characters. Here it is “THURSDAY

    Note: When using strings argument, you have to insert the text value in quotation mark.

    Step 4: Length as long: Number of characters to extract or to return from starting from extreme rightmost character or position, it should be the numeric expression which indicates how many characters to return, here I want the word “DAY” so the number of characters is 3.

    Code:

    Here, I have completed the RIGHT function arguments here. Now, I want to display this result of the variable in the message box. on the next line of code, let’s click on Ctrl + Space, type MsgBox after this you can mention a variable name.

    Step 5: Now, the code is ready, I can run it by click on the F5 key. once I do that, Pop up message appears, with a result in it as “DAY”

    Example #3 – VBA Right

    Now, instead of output appearing in the message box, I want the result or output data to appear in the worksheet.

    In the worksheet, I have a data, i.e. USA city & state (in abbreviated form) in the cell “A4”, now I want to extract state (in abbreviated form), Here I can use Right function with slight modification in the code. Let’s check out, how it can be done.

    Step 1: After declaring a variable, I have to input the variable name again and cell address of the full-text string with the help of Range or cell function.

    Code:

    Step 2: Now, again I need to enter the variable name, and apply RIGHT function & input its arguments.

    Code:

    Step 3: In the previous example, I entered the msg box for the result to be displayed, now, I want the result to appear in a specific cell in a worksheet. for this, I need to enter range or cell function for the result to be displayed.

    Code:

    Step 4: Now, let’s apply range function, initially I need to input the range or cell function and Later enter the variable name, so that in that specific cell (“B4”), the result appears.

    Code:

    Step 5: Now, the code is ready, I can run it by clicking on the F5 key. once I do that, you can observe an output value of Right function appearing in the cell “B4”

    Thinks to Remember

    • Most of the cases, for better performance different version of the Right function, is used i.e. Right$ instead of the default Right is used. This is because the Right function returns a variant instead of a string as therefore it impacts better performance in the result
    • RIGHTB i.e. Right function with byte data: In this function, length argument specifies the number of bytes to return
    • Both RIGHT$ & RIGHTB$ function is usually used to return a byte data from a String data type instead of Variant/String data type

    Recommended Articles

    This is a guide to VBA Right. Here we discuss how to use Excel VBA Right function along with practical examples and downloadable excel template. You can also go through our other suggested articles –

    All in One Software Development Bundle (600+ Courses, 50+ projects)

    Ссылка на основную публикацию
    Adblock
    detector