Компьютерапия. Функция vba left
Функция Left - Access
Возвращает значение типа Variant (String), содержащее указанное число символов с левой стороны строки.
Синтаксис
Left( строка, длина )
Функция Left имеет следующие аргументы:
Аргумент |
Описание |
строка |
Обязательный аргумент. Строковое выражение, из левой части которого возвращаются символы. Если строка содержит значение NULL, возвращается NULL. |
длина |
Обязательный аргумент. Variant (Long). Это числовое выражение, указывающее количество возвращаемых знаков. Если значение равно 0, возвращается строка нулевой длины (""). Если оно больше числа символов в строке или равно ему, возвращается вся строка. |
Замечания
Чтобы определить количество знаков в строке, используйте функцию Len.
Примечание: Если в строке содержатся байтовые данные, используйте функцию LeftB. Аргумент длина задает число байтов, которое нужно возвратить, а не количество символов.
Пример
Примечание: В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Справочник разработчика в раскрывающемся списке рядом с полем Поиск и введите одно или несколько слов в поле поиска.
В этом примере функция Left используется для возврата определенного количества символов из левой части строки.
Dim AnyString, MyStrAnyString = "Hello World" ' Define string.MyStr = Left(AnyString, 1) ' Returns "H".MyStr = Left(AnyString, 7) ' Returns "Hello W".MyStr = Left(AnyString, 20) ' Returns "Hello World".support.office.com
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.
Строки - это последовательность символов, которая может состоять либо из алфавитов, цифр, специальных символов, либо из всех них. Переменная называется строкой, если она заключена в двойные кавычки "".
Синтаксис
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 : 6Line 2 : 0Line 3 : 8Line 4 : 9Line 5 : 2Line 6 : 16Line 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 : 6Line 2 : 6Line 3 : 8Line 4 : 0Line 5 : 2Line 6 : 2Line 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 vbscriptLine 2 : ms vbscriptLine 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Возвращает верхний регистр указанной строки.
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 : MiLine 2 : MS VBLine 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 : ptLine 2 : CRIPTLine 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 VBScriptLine 2 : icrosLine 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Когда вы выполняете функцию, она производит следующий вывод.
Возвращает строку после удаления пробелов в левой части указанной строки.
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 : 18Length 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 ProgrammingLine 2: This is vbScript ProgrammingLine 3: Th## ## VBScript ProgrammingLine 4: ## VBScript ProgrammingLine 5: Thi## i## VBScript ProgrammingLine 6: This is VBSc##ipt P##og##ammingLine 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 на основе входных строк для сравнения.
- Если String 1
- Если String 1 = String 2, то StrComp возвращает 0
- Если String 1> String 2, то 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 :0Line 2 :1Line 3 :1Line 4 :0Line 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 :dddddLine 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 : TPIRCSBVLine 2 : tpircSBV tsriF yMLine 3 : 54.321Возвращает строку после изменения последовательности символов данной строки.
С уважением, авторы сайта Компьютерапия
Понравилась статья? Поделитесь ею с друзьями и напишите отзыв в комментариях!
maxfad.ru
vba - Левая и правая функции не работают в моем коде VBA, ожидая массив?
Когда я запускаю этот код через Excel, он говорит, что функция Left (,) ожидает массив. Я передаю ему String, функция требует String, переменная объявляется как String. Я поставил там оператор $ и он все еще дерьмо. Любая идея, что может быть?
FWIW это отлично работает, когда я запускаю его через SolidWorks.
Кроме того, он вызывается из пользовательской формы, которая передает ему String.
#If VBA7 Then Declare PtrSafe Function SHGetPathFromIDList Lib "shell32.dll" _ Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal _ pszPath As String) As Long Declare PtrSafe Function SHBrowseForFolder Lib "shell32.dll" _ Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) _ As Long #Else Declare Function SHGetPathFromIDList Lib "shell32.dll" _ Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal _ pszPath As String) As Long Declare Function SHBrowseForFolder Lib "shell32.dll" _ Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) _ As Long #End If Public Type BROWSEINFO #If VBA7 Then hOwner As LongPtr pidlRoot As LongPtr pszDisplayName As String lpszTitle As String ulFlags As Long lpfn As LongPtr lParam As LongPtr iImage As Long #Else hOwner As Long pidlRoot As Long pszDisplayName As String lpszTitle As String ulFlags As Long lpfn As Long lParam As Long iImage As Long #End If End Type Private bInfo As BROWSEINFO Function GetDirectory(Optional Msg As String = "Select a folder.") As String Dim path As String Dim x As Long, pos As Integer 'dim bInfo.pidlRoot = 0& ' Root folder = Desktop bInfo.lpszTitle = Msg ' Dialog title bInfo.ulFlags = &h2 ' Type of directory to return x = SHBrowseForFolder(bInfo) path = Space$(512) If SHGetPathFromIDList(ByVal x, ByVal path) Then pos = InStr(path, Chr$(0)) GetDirectory = Left(path, (pos - 1)) End If End Function источник поделитьсяqaru.site