Excel

Excel vba функции работы со строками: Excel все функции по работе с текстом полная инструкция на сайте ExcelPedia

Содержание

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.

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

Содержание:

  • Синтаксис
  • Примеры
  • Строковые функции
  • Название функции и описание
  • InStr
  • Синтаксис
  • Параметр Описание
  • пример
  • Синтаксис
  • Параметр Описание
  • пример
  • LCASE
  • Синтаксис
  • пример
  • UCase
  • Синтаксис
  • пример
  • Left
  • Синтаксис
  • Параметр Описание
  • пример
  • Right
  • Синтаксис
  • Параметр Описание
  • пример
  • Mid
  • Синтаксис
  • Параметр Описание
  • LTrim
  • Синтаксис
  • пример
  • RTrim
  • Синтаксис
  • пример
  • Trim
  • Синтаксис
  • пример
  • Len
  • Синтаксис
  • пример
  • Replace
  • Синтаксис
  • Параметр Описание
  • пример
  • Space
  • Синтаксис
  • Параметр Описание
  • пример
  • StrComp
  • Синтаксис
  • Параметр Описание
  • пример
  • String
  • Синтаксис
  • Параметр Описание
  • пример
  • StrReverse
  • Синтаксис
  • пример

Синтаксис

variablename = "string"

Примеры

str1 = "string"   ' Only Alphabets
str2 = "132. 45"   ' Only Numbers
str3 = "!@#$;*"  ' Only Special Characters
Str4 = "Asc23@#"  ' Has all the above

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

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

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

InStr

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

Синтаксис

InStr([start,]string1,string2[,compare])

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

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

пример

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

Private Sub Constant_demo_Click() 
   Dim Var As Variant 
   Var = "Microsoft VBScript" 
   MsgBox ("Line 1 : " & InStr(1, Var, "s")) 
   MsgBox ("Line 2 : " & InStr(7, Var, "s")) 
   MsgBox ("Line 3 : " & InStr(1, Var, "f", 1)) 
   MsgBox ("Line 4 : " & InStr(1, Var, "t", 0)) 
   MsgBox ("Line 5 : " & InStr(1, Var, "i")) 
   MsgBox ("Line 6 : " & InStr(7, Var, "i")) 
   MsgBox ("Line 7 : " & InStr(Var, "VB")) 
End Sub 

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

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

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

InStrRev

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

Синтаксис

InStrRev(string1,string2[,start,[compare]])

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

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

пример

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

Private Sub Constant_demo_Click()
   var = "Microsoft VBScript"
   msgbox("Line 1 : " & InStrRev(var,"s",10))
   msgbox("Line 2 : " & InStrRev(var,"s",7))
   msgbox("Line 3 : " & InStrRev(var,"f",-1,1))
   msgbox("Line 4 : " & InStrRev(var,"t",5))
   msgbox("Line 5 : " & InStrRev(var,"i",7))
   msgbox("Line 6 : " & InStrRev(var,"i",7))
   msgbox("Line 7 : " & InStrRev(var,"VB",1))
End Sub

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

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

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

LCASE

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

Синтаксис

Lcase(String)

пример

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

Private Sub Constant_demo_Click()
   var = "Microsoft VBScript"
   msgbox("Line 1 : " & LCase(var))
   
   var = "MS VBSCRIPT"
   msgbox("Line 2 : " & LCase(var))
   
   var = "microsoft"
   msgbox("Line 3 : " & LCase(var))
End Sub

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

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

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

UCase

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

Синтаксис

UCase(String)

пример

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

Private Sub Constant_demo_Click()
   var = "Microsoft VBScript"
   msgbox("Line 1 : " & UCase(var))
   
   var = "MS VBSCRIPT"
   msgbox("Line 2 : " & UCase(var))
   
   var = "microsoft"
   msgbox("Line 3 : " & UCase(var))
End Sub

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

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

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

Left

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

Синтаксис

Left(String, Length)

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

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

пример

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

Private Sub Constant_demo_Click()
   Dim var as Variant
   
   var = "Microsoft VBScript"
   msgbox("Line 1 : " & Left(var,2))
   
   var = "MS VBSCRIPT"
   msgbox("Line 2 : " & Left(var,5))
   
   var = "microsoft"
   msgbox("Line 3 : " & Left(var,9))
End Sub

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

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

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

Right

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

Синтаксис

Right(String, Length)

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

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

пример

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

Private Sub Constant_demo_Click()
   var = "Microsoft VBScript"
   msgbox("Line 1 : " & Right(var,2))
   
   var = "MS VBSCRIPT"
   msgbox("Line 2 : " & Right(var,5))
   
   var = "microsoft"
   msgbox("Line 3 : " & Right(var,9))
End Sub

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

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

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

Mid

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

Синтаксис

Mid(String,start[,Length])

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

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

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

Private Sub Constant_demo_Click()
   Dim var as Variant
   var = "Microsoft VBScript"
   msgbox("Line 1 : " & Mid(var,2))
   msgbox("Line 2 : " & Mid(var,2,5))
   msgbox("Line 3 : " & Mid(var,5,7))
End Sub

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

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

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

LTrim

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

Синтаксис

LTrim(String)

пример

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

Private Sub Constant_demo_Click()
   Dim var as Variant
   var =       "             Microsoft VBScript"
   msgbox "After Ltrim : " & LTrim(var)
End Sub

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

After Ltrim : Microsoft VBScript

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

RTrim

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

Синтаксис

RTrim(String)

пример

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

Private Sub Constant_demo_Click()
   Dim var as Variant
   var =       "Microsoft VBScript           "
   msgbox("After Rtrim : " & RTrim(var))
End Sub

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

After Rtrim : Microsoft VBScript

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

Trim

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

Синтаксис

Trim(String)

пример

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

Private Sub Constant_demo_Click()
   var = "Microsoft VBScript"
   var =       "            Microsoft VBScript           "
   msgbox ("After Trim : " & Trim(var))
End Sub

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

After trim : Microsoft VBScript

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

Len

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

Синтаксис

Len(String)

пример

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

Private Sub Constant_demo_Click()
   Dim var1 as Variant
   Dim var2 as Variant
   
   var1 ="Microsoft VBScript"
   msgbox("Length of var1 is : " & Len(var1))
  
   var2 =       "       Microsoft VBScript           "
   msgbox ("Length of var2 is : " & Len(var2))
End Sub

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

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

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

Replace

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

Синтаксис

Replace(string,find,replacewith[,start[,count[,compare]]])

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

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

пример

Private Sub Constant_demo_Click()
   Dim var as Variant
   var = "This is VBScript Programming"
  
   'VBScript to be replaced by MS VBScript
   msgbox("Line 1: " & Replace(var,"VBScript","MS VBScript"))
  
   'VB to be replaced by vb
   msgbox("Line 2: " & Replace(var,"VB","vb"))
  
   ''is' replaced by ##
   msgbox("Line 3: " & Replace(var,"is","##"))
  
   ''is' replaced by ## ignores the characters before the first occurence
   msgbox("Line 4: " & Replace(var,"is","##",5))
  
   ''s' is replaced by ## for the next 2 occurences. 
   msgbox("Line 5: " & Replace(var,"s","##",1,2))
  
   ''r' is replaced by ## for all occurences textual comparison.
   msgbox("Line 6: " & Replace(var,"r","##",1,-1,1))
  
   ''t' is replaced by ## for all occurences Binary comparison
   msgbox("Line 7: " & Replace(var,"t","##",1,-1,0))
  
End Sub

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

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 заполняет строку конкретным количеством пробелов.

Синтаксис

space(number)

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

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

пример

Private Sub Constant_demo_Click()
   Dim var1 as Variant
   
   var1 = "Microsoft"
   Dim var2 as Variant
   
   var2 = "VBScript"
   msgbox(var1 & Space(2)& var2)
End Sub

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

Microsoft VBScript

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

StrComp

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

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

Синтаксис

StrComp(string1,string2[,compare])

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

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

пример

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

Private Sub Constant_demo_Click()
   Dim var1 as Variant
   msgbox("Line 1 :" & StrComp("Microsoft","Microsoft"))
   msgbox("Line 2 :" &StrComp("Microsoft","MICROSOFT"))
   msgbox("Line 3 :" &StrComp("Microsoft","MiCrOsOfT"))
   msgbox("Line 4 :" &StrComp("Microsoft","MiCrOsOfT",1))
   msgbox("Line 5 :" &StrComp("Microsoft","MiCrOsOfT",0))
End Sub

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

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

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

String

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

Синтаксис

String(number,character)

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

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

пример

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

Private Sub Constant_demo_Click()
   msgbox("Line 1 :" & String(3,"$"))
   msgbox("Line 2 :" & String(4,"*"))
   msgbox("Line 3 :" & String(5,100))
   msgbox("Line 4 :" & String(6,"ABCDE"))
End Sub

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

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

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

StrReverse

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

Синтаксис

StrReverse(string)

пример

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

Private Sub Constant_demo_Click()
   msgbox("Line 1 : " & StrReverse("VBSCRIPT"))
   msgbox("Line 2 : " & StrReverse("My First VBScript"))
   msgbox("Line 3 : " & StrReverse("123.45"))
End Sub

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

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

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

 С уважением, авторы сайта Компьютерапия


Понравилась статья? Поделитесь ею с друзьями и напишите отзыв в комментариях!

Функция InStr. Функции обработки строк в Excel (VBA)

Автор Амина С. На чтение 9 мин Опубликовано

Если часто приходится работать с электронными таблицами, то настоятельно рекомендуется ознакомиться с макросами. Это микропрограммы, настроенные на автоматизацию выполнения определенных действий. Они позволяют значительно расширить возможности как самого Excel, так и конкретного пользователя.

Одно из ключевых понятий языка программирования VBA (а именно на нем осуществляется написание макросов) является функция. Это блок программы, который обрабатывает определенные данные и возвращает какой-то конкретный результат. 

Одной из таких функций является InStr. Давайте подробно рассмотрим ее основные аргументы, а также реальные примеры, описывающие ее использование в реальной жизни.

Но давайте сначала узнаем, зачем макросы нужны? Потому что многие начинающие пользователи Excel нередко ошибочно считают, что эта функция излишняя. Но на самом деле, они просто очень мало работали с этой программой. Как только увеличить продолжительность взаимодействия с электронными таблицами, оказывается, что мы часто выполняем тысячи однотипных действий, которые компьютерная программа может выполнить буквально за несколько секунд. Это здорово экономит время и силы, а также разгружает мозг.

Итак, давайте разберем функцию InStr более подробно. 

Содержание

  1. Описание функции InStr
  2. Синтаксис функции InStr, параметры, значения
  3. Синтаксис функции InStr
  4. Параметры функции InStr
  5. Значения аргумента «сравнение»
  6. Примеры использования функции InStr в VBA Excel
  7. Пример 1
  8. Пример 2
  9. Пример 3
  10. Выводы

Описание функции InStr

С помощью функции InStr пользователь может находить местонахождение первого вхождения какого-то текста в другой. Возвращаемый тип данных, осуществляемый этой функцией – Variant. 

Сфера применения этой функции очень широкая, и без нее невозможно обойтись при использовании других функций, таких как Left, Mid, Right. Кроме этого, она может применяться для поиска какого-то текста. 

Есть похожая функция в языке VBA, которая называется InStrB. Ее отличие заключается в том, что обрабатываются байтовые данные. С ее помощью можно узнать расположение байта, а не символа. Более подробно вы можете ознакомиться с этой функцией в третьем примере. 

Преимущества функции InStr следующие:

  1. Возможность быстро обрабатывать огромные массивы данных буквально за несколько секунд. Когда человек осуществляет поиск вручную, только кажется, что все делает компьютер. НА самом деле, он выполняет лишь часть работы. Но все основное делается самим человеком. например, нужно вбить строку поиска, нажимать на стрелочки, чтобы искать определенное по счету вхождение и так далее. Это очень затратно. В случае же с функцией VBA InStr можно добиться этой цели с помощью макросов: с помощью формулы передать в функцию аргументы, а потом дальше использовать получившийся результат в другой функции. Таким образом автоматизируется огромное количество действий, которые при прочих равных пришлось бы выполнять вручную.
  2. Экономия времени. Есть сотрудники, которые за счет макросов смогли значительно увеличить эффективность своей работы и фактически не работать большую часть времени. Все, что им потребовалось – один раз написать скрипт, а потом просто передавать ему нужные параметры. И функция InStr является важной составляющей этого процесса, поскольку со строками приходится иметь дело постоянно, если человек активно использует электронные таблицы.
  3. Экономия ресурсов, в том числе, и интеллектуальных. Это тоже очень важный пункт. Ни для кого не секрет, что постоянное выполнение однотипных действий невероятно утомляет. Следовательно, функция InStr позволяет избавиться от бренной ноши постоянного поиска значений вручную, особенно если для этого используется формула.

Кстати! Использование функции InStr дает возможность значительно улучшить творческие способности!

Как? Очень просто. Исследователи доказали, что основной фактор, который мешает творческому процессу – это излишнее количество рутинных действий. В определенных пределах они помогают сосредоточиться (например, когда человек рисует что-то на автомате), но через некоторое время соответствующие нейронные связи начинают терять в скорости проведения нервных импульсов. Следовательно, на другие задачи уже сил не хватает. А творчество – это интеллектуально затратный процесс. 

Если же использовать функцию InStr, можно освободить себя от этой бренной участи и уделить внимание другим важным вещам и создать не просто красивую, а функциональную таблицу, которая работает полностью автоматически и при этом содержит все необходимые данные. 

А теперь давайте после лирического отступления все же перейдем к рассмотрению синтаксиса функции InStr.

Синтаксис функции InStr, параметры, значения

Синтаксис функции InStr

Если говорить об этой функции в общем, она записывается таким образом. 

InStr([начало], строка1, строка2, [сравнение])

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

InStr(строка1, строка2)

Как правило, именно сокращенный вариант используется на практике. Нельзя сказать, что в ней вообще нет первого и последнего аргумента, просто автоматически применяются те значения, которые определены как «по умолчанию». 

Параметры функции InStr

Давайте более подробно опишем, что означает каждый из аргументов:

  1. Начало. Этот параметр не является обязательным. В него записывается число, которым записывается изначальная позиция, с которой начинается поиск. 
  2. Строка1. Этот аргумент нужно не забывать указывать. Это непосредственно тот текст, в котором нужно искать.
  3. Строка 2. Это то, что мы ищем.
  4. Сравнение. С помощью этого аргумента пользователь может задать способ, которым будут анализироваться и сопоставляться строки. 

Важно учесть некоторые нюансы:

  1. Если пользователь записал последнее значение, то первое вводить обязательно.
  2. Если же параметр «Сравнение» в функции не прописан, то Эксель применяет значение по умолчанию (0 или другое при условии наличия инструкции Option Compare).
  3. Если пользователь укажет значение NULL в необязательные аргументы, то формула выдаст ошибку. Это нужно держать в уме.

Ну как? Сложно? Наверно, все же все просто. На первый взгляд может показаться, что запомнить все это довольно тяжело. Но в практике мастерство оттачивается. Поэтому настоятельно рекомендуется потренироваться «в песочнице».

Значения аргумента «сравнение»

С помощью аргумента «сравнение» человек может задавать тип сравнения. Делается это через указание значения, выраженного в цифровом формате. Если в качестве значения этого аргумента используется 1, то параметр означает сравнивание двух показателей с использованием инструкции Option Compare.

Если этому аргументу присвоить значение 1, то функция осуществляет бинарное сравнение. Простыми словами, при этом типе осуществляется поиск значения с учетом регистра. В случае же с текстовым сравнением регистр не учитывается.

Каждое значение, возвращаемое функцией, говорит о выполнении одного из возможных условий:

  1. Позиция первого найденного соответствия. Если возвращается строка, аналогичная тому, что было обнаружено в самом первом случае, то поиск оказался успешным. 
  2. 0. Это значение говорит о том, что поиск оказался неудачным. Простыми словами, не получилось в первой строке отыскать вторую. Также нередко можно встретить такую ошибку в ситуациях, когда при попытке поиска оказывается, что первая строка не содержит никаких значений или же значение, передающееся аргументу «начало», оказывается большим, чем длина первой строки. 
  3. Такое же значение, которое передается аргументу «начало». Это говорит о том, что вторая строка не содержит никаких значений.
  4. NULL. Эта проблема возникает в ситуациях, когда или строка 1, или строка 2 содержит аналогичную ошибку. Чаще всего эта проблема случается, если пользователь неправильно указал диапазон (например, указал неправильный оператор диапазона). Также если вводится несколько пересекающихся диапазонов, то эта ошибка может возникать, если человек неправильно применил оператор диапазона (коим служит символ пробела).

В последнем случае нужно удостовериться в том, что для указания диапазона был использован знак двоеточия. Например, если используется диапазон от А1 до А10, то нужно его записывать, как А1:А10.

Если же нужно указать несколько непересекающихся друг между другом наборов ячеек, то используется символ точки с запятой (некоторые говорят, что используется запятая, но это неправильно). Например, правильный ввод такой: А1:А10;С1:С10.

Если же используется пробел, нужно убедиться в том, что диапазоны действительно пересекаются. Если они расположены независимо друг от друга, это может породить множество проблем. Поэтому нужно или заменить знак, разделяющий диапазоны, на точку с запятой, или изменить диапазоны так, чтобы они пересеклись в том или ином месте. 

Ну и простой пример для наглядности. Предположим, у нас есть диапазоны a1: A5 C1: C3.

В этом случае ячейки никак не пересекаются. Соответственно, будет возвращено значение NULL. Следовательно, пользователь увидит после вычисления по формуле с использованием аргументов, возвращающих это значение, также NULL.

Ведь невозможно выполнять поиск в тех ячейках, где нет нормального значения пусть даже числового (хотя формула InStr лучше подходит для поиска именно текстовых соответствий).

Если в Excel включена функция автоматической проверки ошибок, то рядом с ошибочной ячейкой будет находиться восклицательный знак. Если на него нажать, появится возможность выбрать подходящую под текущую проблему ситуацию. 

Примеры использования функции InStr в VBA Excel

Существует множество применений функции InStr при разработке макросов. Давайте разберем три простых примера, чтобы было более наглядно, как можно использовать ее в реальных (или воображаемых) условиях

Пример 1

Этот пример создан специально для новичков, поскольку демонстрирует чисто использование функции InStr. Следовательно, он является наиболее простым.

Sub Test1()

Dim x As Variant

x = InStr(«На горе Фернандо-По, где гуляет Гиппо-по», «Фернандо»)

MsgBox x

‘Здесь x будет равен 9

End Sub

Пример 2

Этот пример показывает, как можно использовать текстовое и бинарное сравнение для поиска соответствий, в которых регистр символов важен и нет. В этом кейсе для примера были использованы две строки с одинаковым содержимым, чтобы было проще наглядно показать, как Excel учитывает регистр символ или не учитывает его в макросах.

Sub Test2()

Dim x As Variant

x = InStr(10, «На горе Фернандо-По, где гуляет Гиппо-по», «по», 0)

MsgBox x

‘Здесь x будет равен 36 (поиск с учетом регистра символов)

x = InStr(10, «На горе Фернандо-По, где гуляет Гиппо-по», «по», 1)

MsgBox x

‘Здесь x будет равен 18 (поиск без учета регистра символов)

End Sub

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

Пример 3

А в этом случае осуществляется сравнение сравнений посимвольного и побайтового типов. Здесь также для большей наглядности мы использовали одинаковые строки и подстроки, которые будем искать. А вот и сам пример.

Sub Test 3()

Dim x As Variant

x = InStr(«На горе Фернандо-По, где гуляет Гиппо-по», «гор»)

MsgBox x

‘Здесь x будет равен 4

x = InStr(«На горе Фернандо-По, где гуляет Гиппо-по», «гор»)

MsgBox x

‘Здесь x будет равен 7

End Sub

Выводы

Таким образом, функция InStr в языке программирования VBA, который используется в макросах, имеет очень много применений. Она полезна, когда есть оромный массивы данных, который невозможно проанализировать вручную, а встроенные средства автоматизации типа поиска также отнимают много времени и сил.  

По сути, эта функция и являет собой тот же самый поиск за тем лишь исключением, что можно заранее задать Excel, при каких условиях и как он будет осуществляться.

Есть еще множество других волшебных функций, используемых для написания макросов, и мы обязательно познакомим вас с ними в следующий раз.

Оцените качество статьи. Нам важно ваше мнение:

строк в VBA

В этой главе вы найдете наиболее важные функции VBA для

  • манипуляции со строками, такие как конкатенация, добавить или удалить лишние пробелы или заменить строки или часть строк и StrReverse;
  • получить подстроки: найти часть строк слева или справа или посередине.
  • поиск указанной подстроки с помощью InStr или InStrRev.

Для выбора других строковых функций, доступных на других языках, но адаптированных для VBA, посетите страницу дополнительных строковых функций с помощью , StartsWith и EndsWith, содержит, PadLeft и PadRight, IsNullOrEmpty и другие.

Что такое строка

Тип переменной String используется для хранения текстовых строк. Строки представляют собой последовательность символов: букв, цифр, специальных символов в любом сочетании.

Хорошей практикой программирования является объявление переменной и ее типа перед ее использованием, поскольку это предотвращает ошибки (см. Option Explicit):

 Dim str As String 

Чтобы присвоить переменной значение, это значение должно быть заключено в двойные кавычки:

 str = "Некоторый текст" 'или'
str = "100" ' Имейте в виду, что "100" - это не число, а "100" в виде текста. 
Примечание
Интерпретатор Visual Basic пытается понять (разрешить) любое присвоение переменной, учитывая ее тип. Следующее также будет автоматически преобразовано в строковый тип: str = 100
 ActiveCell.Value = str 'Вы также можете поместить текст из редактора VBA в ячейку электронной таблицы Excel'
str = ActiveCell. Value 'И вы можете вывести текст из ячейки электронной таблицы Excel в редактор VBA. 

Конкатенация

Конкатенация означает объединение нескольких строк в одну строку. Вы можете сделать это с помощью символа & (наиболее часто используемый) или + (альтернативный).

 Dim str Как строка, str1 Как строка
ул = "абв"
str1 = str & "_" & 12 & Date 

… возвращает значение для str1: abc_1230/08/2022

Обратите внимание, что VBA не привязывается к типам переменных, которые вы хотите добавить, он автоматически преобразует предоставленный тип в строку в процессе.

Манипуляции со строками

Существует множество встроенных строковых функций VBA, которые изменяют строку. Некоторые из них мы изучим здесь: Подрезать, LCase и UCase, Космос, Заменить и StrReverse

LCase(String): возвращает нижний регистр указанной строки

 LCase("АЛФАВИТ")     Результат: "алфавит" 

Ucase(String): возвращает верхний регистр указанной строки

 UCase("Алфавит")     Результат: "АЛФАВИТ" 

Когда вам нужно сравнить два значения переменных, может быть важно проверить, все ли значения находятся в одном и том же регистре для случаев, когда не важно, написано ли значение с заглавной буквы или нет. Затем вы используете Lcase или Ucase перед значениями.

Пробелы — добавить или удалить

Пробел(число) — заполняет строку указанным количеством пробелов. Используется в сочетании с/объединяется с другими переменными с помощью символа ‘&’. Обратите внимание, что чаще вы будете просто создавать строку, содержащую необходимое количество пробелов.

 Dim str1 как строка, str2 как строка
str1 = "Имя"
str2 = "Фамилия"
MsgBox (str1 & Space(2) & str2) 'Имя Фамилия'
MsgBox (str2 & "," & Space(1) & str1) 'Фамилия, Имя' 

Другие функции, касающиеся пробелов, удаляют пробелы. Поскольку значения переменных с ошибочными пробелами или без них различаются, важно проверить, есть ли пробелы в значениях.

LTrim(String) Возвращает строку после удаления пробелов в левой части указанной строки.
RTrim(String) Возвращает строку после удаления пробелов с правой стороны указанной строки.
Отделка (струна) Возвращает строковое значение после удаления пробелов в начале и в конце.
 Trim("abc") 'возвращает abc без пробелов' 

Заменить

Синтаксис: Заменить(строка_для_поиска, строка_для_замены, замена_с [начало, [количество, [сравнить]]])

Аргументы между [] необязательны. Начало: это позиция в string_to_search для начала поиска. Если этот параметр опущен, функция замены начнет поиск с позиции 1.
Count: это количество вхождений для замены. Если этот параметр опущен, функция REPLACE заменит все вхождения string_to_replace на replace_with.
Compare: Это может быть одно из следующих двух значений: vbBinary, сравнение двоичных файлов или vbTextCompare, сравнение текстов.

Примеры:

 Заменить("codevba", "vba", "VBA") 'Возвращает код VBA'
Replace("codevba", "a", " Extra") 'Возвращает codevbExtra'
Replace("John Doe", "o", "i") 'Возвращает Jihn Die 

StrReverse(«abc») . Переворачивает указанную строку: cba

Функции подстроки

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

Левый и правый

Функции Left и Right возвращают первое или последнее количество символов:

 Left("text_string", 3)     'дает "tex"'
Right("text_string", 3)     'дает "ing"' 

Середина

Mid(string_to_search, start_position, number_of_characters)
Для извлечения подстроки, начиная с start_position где-то в середине строки. Если вы хотите извлечь подстроку из строки, начиная с середины и до конца, вы можете опустить третий аргумент.

Примеры:

 Mid("text_string", 9, 2)     'дает "in" 
 Mid("text_string", 3, 5)     'дает "xt_st" 

Длина или положение

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

 Len("Манипуляции со строками!!") ' Результат:21 ' 

Обычно Len используется для проверки того, пуста строка или нет, и пусть это определяет, что делать:

 Если Лен(стр) = 0 Тогда
    Перейти к NoInput
Еще
    'обработать строку'
Конец, если 

Поиск

InStr ( [start], string_to_search, substring, [compare] )    ‘Возвращает первое вхождение указанной подстроки. Поиск происходит слева направо.

В первую очередь можно указать начальную позицию поиска, если она не указана, поиск начинается с начала. На втором месте текст для поиска, а на третьем то, что вы хотите найти. Затем VBA вернет вам целое число взамен. Это число равно 0, если строка не найдена. Если строка найдена, вы получаете местоположение начала строки, которую искали.

Пример:

 InStr(1, "codevbatool", "o") результат: 2. Вы получаете место первого вхождения слева строки "o",  а не количество и не другие "o" 

InStrRev(string1,string2[start,[compare]])

InStrRev(» «codevbatool», «o») result:10
Возвращает первое вхождение указанной подстроки. Поиск происходит справа налево. Вы получаете место первого вхождения справа от строки, но отсчитываете от левый. он проверяет свою позицию с направления вперед и выдает свою позицию в качестве результата.

Практическое использование InStrRev может заключаться в поиске последнего индекса символа внутри строки.

Резюме

Имя функции Описание
InStr Возвращает первое вхождение указанной подстроки. Поиск происходит слева направо.
InstrRev Возвращает первое вхождение указанной подстроки. Поиск происходит справа налево.
Lcase Возвращает нижний регистр указанной строки.
Ucase Возвращает верхний регистр указанной строки.
Left Возвращает определенное количество символов с левой стороны строки.
Right Возвращает определенное количество символов с правой стороны строки.
Mid Возвращает определенное количество символов из строки на основе указанных параметров.
Ltrim Возвращает строку после удаления пробелов с левой стороны указанной строки.
Rtrim Возвращает строку после удаления пробелов с правой стороны указанной строки.
Обрезать Возвращает строковое значение после удаления начальных и конечных пробелов.
Len Возвращает длину заданной строки.
Заменить Возвращает строку после замены строки другой строкой.
Пробел Заполняет строку указанным количеством пробелов.
StrComp Возвращает целочисленное значение после сравнения двух указанных строк.
Строка Возвращает строку с указанным символом указанное количество раз.
StrReverse Возвращает строку после обращения последовательности символов данной строки.

На изображении ниже показана надстройка Code VBA, поддерживающая строковые процедуры VBA.

Строковые функции Excel VBA • My Online Training Hub

Если вы работаете со строками (последовательностью букв, цифр или других символов) в VBA, вам необходимо знать функции, которые вы можете использовать для управления этими строками.

В этом посте рассматриваются только строковые функции VBA, а не функции, которые вы можете использовать на листе.

Что такое строка?

Почему я продолжаю использовать строку слов, а не текст? Потому что в программировании любая последовательность символов, хранящаяся в виде текста, называется строкой.

Можно 2016 хранится как текст, и это строка. Так же как и Excel , Excel 2016 и |.. © Microsoft 2016 ..| .

Следующие функции работают с любой строкой, а не только с текстовыми символами.

Список строковых функций

Их много, поэтому этот список поможет вам найти нужную и увидеть краткое объяснение того, что она делает.

Множество примеров использования этих функций можно найти в рабочей тетради, которую вы можете загрузить внизу страницы.

2

Len

Найдите длину строки

и

Concatenat

Разделить

Создать массив подстрок из строки

StrComp

Сравнить строки

= and <>

Compare strings for equality only

Like

Compare strings using pattern matching

UCase

Convert to UPPER CASE

LCase

Преобразование в нижний регистр

StrConv

Преобразование в правильный регистр (первая буква каждого слова заглавная)

слева

Экстракт подстрига, начиная с левой стороны строки

Правый

Извлечение подпрограммы, начинающаяся с правой стороны. Извлечение подпрограммы 9999999999999999999999999999999999.309999999999999999999999999.30999999999999999999999999 год. Извлечение подпрограмм.

Mid

Извлечь подстроку, начиная с середины строки

Instr

Найти позицию подстроки, начиная с левой стороны строки

Instrrev

Найдите положение подстрика, начиная с правой стороны строки

Строка

Создайте струну, состоящую из специфических номеров, Создайте струну, состоящую из специфических номеров . Создайте струну, состоящую из специфических номеров 99993993999939.

Пробел

Создать строку, состоящую из указанного количества ПРОБЕЛ

Обрезать

Удалить символы ПРОБЕЛ с обеих сторон строки

LTrim

Remove SPACE characters from the left side of the string

RTrim

Remove SPACE characters from the right side of the string

Replace

Заменить часть строки другой строкой

StrReverse

Перевернуть строку

Asc

Введите кодовое значение (целое число ASCII) указанного символа или первого символа в строке

Chr

Введите символ, указанный в кодовом значении (целое число ASCII)
9

Val

Возвращает числа в строке, начиная с левой стороны. Останавливается при обнаружении нечислового символа

Len

Я использую это все время. Вы будете использовать его в других функциях, когда вам нужно указать длину строки, например, при поиске подстрок

 Length = Len(MyString) 

&

Это не функция, но вы будете постоянно использовать ее для соединения строк.

 Результат = String1 & String2 & "Другая строка" 

Соединение

Используйте Соединение для создания одной строки из массива строк. Вы указываете разделитель в качестве второго аргумента функции.

    Dim myDays(2) как строка
    
    мои дни (0) = "Пн"
    мои дни (1) = "Вт"
    мои дни (2) = "среда"
    
    ' Выдает строку "Пн, Вт, Ср"
    Debug.Print Присоединиться (myDays, ",")
 

Разделить

Разбивает строку на несколько строк, каждая из которых сохраняется как элемент массива. 2-й аргумент функции — это разделитель, используемый для разделения

. 

    Dim myFruit() как строка
    Тусклые фрукты как струна
    
    Фрукты = «Яблоко, груша, апельсин, персик»
    
    ' Разделитель необязателен
    ' Если он опущен, предполагается, что разделителем является ПРОБЕЛ, т.е. " "
    myFruit = Разделить (Фрукты, ",")
    
    Debug.Print myFruit(0) 'Яблоко
    Debug.Print myFruit(1) 'Груша
    Debug.Print myFruit(2) 'Оранжевый
    Debug.Print myFruit(3) 'Персик
   
 

StrComp

Это может быть довольно сложно, но если вы просто используете его для проверки совпадения строк, это просто.

StrComp позволяет выполнять текстовое сравнение без учета регистра (c = C) или двоичное сравнение с учетом регистра.

StrComp предполагает, что одна строка может иметь большее или меньшее значение, чем другая. Это работает для сравнения двух строк посимвольно. Проверяется значение ASCII каждого символа, если они совпадают, проверяется следующий символ и так далее.

Если код ASCII символа в первой строке меньше, чем код символа во второй строке, первая строка считается меньшей, чем вторая строка, и наоборот.

Значения, возвращаемые StrComp, различаются в зависимости от результата сравнения, вы можете прочитать все об этом на справочной странице MSDN, но резюмируем:

  • Если String1 меньше, чем String2, результат равен -1
  • Если String1 равно String2, результат равен 0
  • Если String1 больше, чем String2, результат равен 1
 ' vbBinaryCompare используется по умолчанию и может быть опущен
 ' vbBinaryCompare чувствителен к регистру, vbTextCompare - нет.
    
    ' Оба они равны
    Debug.Print StrComp("Excel", "Excel", vbTextCompare)
    Debug.Print StrComp("Excel", "Excel", vbBinaryCompare)

    ' vbBinaryCompare не равно
    Debug.Print StrComp("Excel", "excel", vbTextCompare)
    Debug.Print StrComp("Excel", "excel", vbBinaryCompare)

    а = 97
    х = 120
    'А = 65
    'Х = 88
    
    а а = 1
    Debug.Print StrComp("x", "a")
    
    х > А = 1
    Debug.Print StrComp("x", "A")

    'абв абв = 1
    Debug. Print StrComp("abcde", "abc")
    
    ' азбука
 

= и

<>

Это тоже не функции, это операторы, но они позволяют быстро проверить, равны ли строки.

    ' Истинный
    Отладка. Печать "х" = "х"
    
    ' ЛОЖЬ
    Отладка. Печать "x" = "X"

    ' ЛОЖЬ
    Отладка. Печать "x" "x"
    
    ' Истинный
    Отладка. Печать "x" "X"
 

Нравится

Like — это еще один оператор, а не функция, но давайте просто двигаться дальше 🙂 . Like очень мощный, но я не вижу, чтобы его часто использовали. Это позволяет вам сопоставлять строку с образцом. Это означает, что вы указываете предопределенный набор специальных шаблонов для соответствия вашей строке. Он очень гибкий, и если вы привыкли использовать регулярное выражение или настраиваемые числовые форматы, вы очень быстро освоитесь.

Вот ссылка MSDN

Pattern Matches
E the letter E
Excel The string Excel
? Один символ
* Ноль или более символов
# Любая цифра 0-9
[ HARS ]
[ ]. 0608
[! символов ] Любой символ, не входящий в список символов
    ''''''''''''''''''''''''''''''''
    'Все это правда
    ''''''''''''''''''''''''''''''''
    ' 0 или более символов
    Debug.Print "Excel" Как "*"
    
    ' Начинается с E, за которым следует 0 или более символов
    Debug.Print "Excel" Как "E*"
    
    ' Начинается с E, за которым следуют ровно 4 символа
    Debug.Print "Excel" Like "E????"
    
    ' Начинается с E, за которым следуют ровно 4 символа,
    ' пробел, а затем 4 однозначные цифры
    Debug.Print "Excel 2016" Like "E???? ####"
    
    ' Начинается с E, за которым следуют ровно 4 символа,
    ' пробел, 3 одиночные цифры, а затем либо 3, либо 6
    Debug.Print "Excel 2013" Like "E???? ###[36]"
    Debug.Print "Excel 2016" Like "E???? ###[36]"
    
    ' Начинается с E, за которым следуют ровно 4 символа,
    ' пробел, 3 одиночные цифры, затем любой символ/цифра, кроме 0
    Debug. Print "Excel 2013" Like "E???? ###[!0]"
    Debug.Print "Excel 2016" Like "E???? ###[!0]"
    
    
    
    '''''''''''''''''''''''''''
    'Все это Ложь
    '''''''''''''''''''''''''''
    
    ' Начинается с E, за которым следует 0 или более символов
    Debug.Print "Excel" Как "e*"
    
    ' Начинается с E, за которым следуют ровно 4 символа
    Debug.Print "Excel" Like "E????"
    
    ' Начинается с E, за которым следуют ровно 4 символа,
    ' пробел, а затем 4 однозначные цифры
    Debug.Print "Excel 202016" Like "E???? ####"
    
    ' Начинается с E, за которым следуют ровно 4 символа,
    ' пробел, 3 одиночные цифры, а затем либо 3, либо 6
    Debug.Print "Excel 2007" Like "E???? ###[36]"
    Debug.Print "Excel 2010" Like "E???? ###[36]"
    
    ' Начинается с E, за которым следуют ровно 4 символа,
    ' пробел, 3 одиночные цифры, затем любой символ/цифра, кроме 0
    Debug.Print "Excel 2010" Like "E???? ###[!036]"
    Debug.Print "Excel 2013" Like "E???? ###[!036]"
    Debug. Print "Excel 2016" Like "E???? ###[!036]"
 

UCase

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

    'Печать MICROSOFT EXCEL
    Debug.Print UCase("MICROSOFT Excel")
 

LCase

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

    'Печатает Microsoft Excel
    Debug.Print LCase("MICROSOFT Excel")
 

StrConv

StrConv принимает второй аргумент, который указывает, какое преобразование делать. Он может преобразовывать строки в верхний и нижний регистр, но действительно полезен, поскольку может преобразовывать строки в правильный регистр: где первая буква в каждом слове заглавная.

    'Печать MICROSOFT EXCEL
    Debug.Print StrConv("MICROSOFT Excel", vbUpperCase)

    'Печатает Microsoft Excel
    Debug.Print StrConv("MICROSOFT Excel", vbLowerCase)

    'Печатает Microsoft Excel
    Debug.Print StrConv("MICROSOFT Excel", vbProperCase)
 

Left

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

   'Печатает отл.
    Debug.Print Left("Excel", 3)
 

Right

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

   'Печатает цел
   Отладка.Право на печать("Excel", 3)
 

Mid

Возвращает подстроку, начинающуюся с начальной позиции, определенной вторым аргументом, где количество возвращаемых символов определяется третьим аргументом.

   'Начать с символа 3 и вернуть 2 символа
   'Печать ce
   Debug.Print Mid("Excel", 3, 2)
 

Instr

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

По умолчанию выполняется двоичное (с учетом регистра) сравнение, но вы можете задать текстовое (без учета регистра) сравнение.

Вы можете указать начальную позицию в первой строке для поиска второй.

Проверить полный синтаксис в MSDN

    'Печатает 3
    Debug. Print InStr("Microsoft Excel", "c")

    'Начать поиск с символа 11 и далее
    'Печатает 13
    Debug.Print InStr(11, "Microsoft Excel", "c")
    
    'Выводит 0, так как C нет в строке
    Debug.Print InStr("Microsoft Excel", "C")
    
    ' Требуется запуск, если указан тип сравнения
    ' Теперь мы делаем нечувствительный к регистру comaprison
    ' Печатает 3
    Debug.Print InStr(1, "Microsoft Excel", "C", vbTextCompare)
    
 

InstrRev

Работает аналогично Instr. Ищет первое вхождение строки в другую строку, но начинает справа и движется влево.

Однако позиция вхождения строки по-прежнему считается слева.

MSDN

    ' Печатает 7
    Debug.Print InStrRev("Microsoft Excel", "o")

    ' Указана начальная позиция 6
    ' Печать
    Debug.Print InStrRev("Microsoft Excel", "o", 6)

    ' Требуется начальный аргумент, если указан тип сравнения
    ' Длина "Microsoft Excel" составляет 15
    ' Но обычно вы используете Len(MyString) для получения длины строки
    ' вместо жесткого кодирования числа. 
    
    ' Выполняя сравнение без учета регистра, первый o находится в позиции 7
    Debug.Print InStrRev("Microsoft Excel", "O", 15, vbTextCompare)

    'Но при сравнении с учетом регистра O отсутствует, поэтому возвращается 0
    Debug.Print InStrRev("Microsoft Excel", "O", 15)

 

Строка

Создать строку заданной длины из указанного символа.

Если указать строку в качестве второго аргумента, первый символ этой строки используется для создания новой строки.


    ххххх
    Debug.Print Строка(5, "x")

    ххххх
    Debug.Print Строка(5, "xo")

    ' Вы также можете использовать функцию Chr для указания символа
    'Кр(65) = А
    Debug.Print Строка(5, Chr(65))

 

Пробел

Создать строку заданной длины, содержащую только пробелы.


    ' Печатает строку, состоящую из 3 символов ПРОБЕЛ
    Отладка. Место для печати(3)

   ' Вы можете использовать String и Chr(32), чтобы сделать то же самое
    Debug. Print Строка(3, Chr(32))

 

Обрезка

Удаление любых символов ПРОБЕЛ с любого конца строки. Это оставляет пробелы в середине строки.


    ' 2 x ПРОБЕЛ в начале строки
    ' 1 x ПРОБЕЛ в конце строки
    myString = "Excel 2016"
    
    'Принты "Excel 2016"
    Debug.Print Trim(myString)

 

LTrim

Удалите все символы ПРОБЕЛ с левого конца строки. Оставляет ПРОБЕЛЫ в середине строки.


    ' 2 x ПРОБЕЛ в начале строки
    ' 1 x ПРОБЕЛ в конце строки
    myString = "Excel 2016"
    
    'Печатает "Excel 2016"
    Debug.Print Trim(myString)

 

RTrim

Удалите все символы ПРОБЕЛ с правого конца строки. Оставляет ПРОБЕЛЫ в середине строки.


    ' 2 x ПРОБЕЛ в начале строки
    ' 1 x ПРОБЕЛ в конце строки
    myString = "Excel 2016"
    
    'Печатает "Excel 2016"
    Debug.Print Trim(myString)

 

Заменить

Заменить часть строки другой строкой указанное количество раз. Если вы не укажете, сколько вхождений заменяемой строки, будут заменены все вхождения.

Начальная позиция определяется 3-м аргументом, количество вхождений для замены на 4-й. Оба являются необязательными. Сравнение может быть чувствительным к регистру или нечувствительным к регистру.

Ссылка MSDN.


    'Замени 10 на 16
    ' Печатает "Excel 2016"
    Debug.Print Заменить("Excel 2010", "10", "16")
    
    'Замени 0 на 6
    ' Печатает "Excel 2616"
    Debug.Print Заменить("Excel 2010", "0", "6")

    ' Начать с первого символа
    ' и заменить только первое вхождение
    ' Печатает "Excel 2610"
    Debug.Print Replace("Excel 2010", "0", "6", 1, 1)

 

StrReverse

Переворачивает строку.

   ' Печатает "6102 lecxE"
    Debug.Print StrReverse("Excel 2016")
 

Asc

Выдает код символа (значение ASCII) для символа.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *