Удаление ненужных символов
Зачастую строки в программе содержат ненужные символы пробелов в конце или в начале строки, которые необходимо удалить, т.к. посторонние начальные или конечные пробелы в строке могут вызвать "неполадки" в работе программы. В VBA имеются три функции, предназначенные для удаления начальных и конечных пробелов из строки: LTrim, RTrim, Trim. Эти функции не изменяют исходную строку, а возвращают копию строки с удаленными лишними пробелами. Пример Sub Встр_функции_1() Dim Стр0, Стр1, Стр2, Стр3 Стр0 = " Строка " Стр1 = RTrim(Стр0) Стр2 = LTrim(Стр0) Стр3 = Trim(Стр0) MsgBox "(" & Стр1 & ")" & Chr(13) & _ "(" & Стр2 & ")" & Chr(13) & _ "(" & Стр3 & ")" End Sub При выполнении этой процедуры выводится диалоговое окно Определение длины строки Длину строки, как правило, надо знать при форматировании сообщений для пользователя или при форматировании строковых данных, вводимых процедурой в рабочий лист Excel или документ Word. VBA для этих целей использует функцию Len. В приведенным ниже листинге между знаками круглых скобок и словом присутствует по два пробела. Пример Sub Встр_функции_2() Dim Стр0 As String, Стр1 As Byte Стр0 = " Строка " Стр1 = Len(Стр0) MsgBox "Стр1=" & Стр1 End Sub
Строка фиксированной длины имеет всегда одну и ту же длину, и поэтому функция Len всегда возвращает объявленную длину строки, независимо от фактической длины строки. Например, если в строковой переменной фиксированной длины Стр0 определить длину, равную 20 символам, а фактически находится слово "Строка", то функция Len(Стр0) возвратит результат, равный 20. Примеры Sub Встр_функции_3() Dim Стр0 As String * 20, Стр1 As Byte Стр0 = "Строка" Стр1 = Len(Стр0) MsgBox "Стр1=" & Стр1 End Sub Чтобы в таком случае узнать фактическую длину строки (в нашем случае - 6), необходимо использовать комбинацию функций Len(Trim(StrokeName)):
Sub Встр_функции_4() Dim Стр0 As String * 20, Стр1 As Byte Стр0 = "Строка" Стр1 = Len(Trim(Стр0)) MsgBox "Стр1=" & Стр1 End Sub Сравнение и поиск строк В VBA имеются две функции, помогающих сравнивать строки: StrComp и InStr. Функция StrComp Формат функции: StrComp (String1, String2 [, Compare]) где String1, String2 - любые два строковых выражения, которые необходимо сравнивать. Compare - необязательный аргумент, может быть любой из следующих предопределенных констант: - vbBinaryCompare - бинарное сравнение двух строк; - vbTextCompare - текстовое сравнение двух строк. При бинарном сравнении коды символов упорядочены в соотвествии с их двоичным значением, и коды строчных и прописных букв раразличаются при сравнении. При текстовом сравнении VBA прописные и строчные буквы не различает. Если аргумент Compare опускается, то используется текущая установка Option Compare. Если аргумент Compare опускается, то используется текущая установка инструкции Option Compare (см. Примечание к п. Инструкция условного перехода If…Then…Else). Пример В данном примере инструкция Option Compare используется для задания метода сравнения строковых данных, используемого по умолчанию. Option compare Binary ' т.е. "AAA" < "aaa"' Устанавливает метод сравнения строковых данных Binary.Option compare Text ' т. е. "AAA" = "aaa".' Устанавливает метод сравнения строковых данных Text.При выполнении процедуры StrComp возвращает следующее значене: - -1, если String1 меньше String2; - 0, если String1 и String2 равны; - 1, если String1 больше String2. Пример Sub Встр_функции_5() Dim R1 As String, R2 As String, R3 As String R1 = StrComp("Строка1", "Строка2", vbTextCompare) R2 = StrComp("Строка1", "Строка1", vbTextCompare) R3 = StrComp("Строка2", "Строка1", vbTextCompare) MsgBox "R1=" & R1 & " " & "R2=" & R2 & " " & "R3=" & R3
В первой инструкции присваивания текстовое выражение Строка1 меньше, чем Строка2, и поэтому значение R1=–1, во втором они равны (R2=0) и в третьем Строка2 больше, чем Строка1 (R3=1). Функция InStr Функция InStr дает возможность определить, содержит ли одна строка другую строку. Формат функции: InStr([Start,] String1, String2 [, Compare]) String1, String2 – любые допустимые строковые выражения. Функция проверяет, содержится ли String1 в String2. Start – необязательный аргумент, является численным выражением и указывает положение символа в String1, с которого должна начинаться проверка. Аргумент Start является обязательным, если указывается аргумент Compare. Compare имеет тот же смысл, что и в функции StrComp. InStr возвращает число, обозначающее положение символа в String1, где было обнаружено String2. Если InStr не находит String2 в String1, то возвращается 0. Если String1 (или String2) имеет значение Null (“Пусто”), то функция также возвращает Null. Пример Sub Встр_функции_6() Dim R1 As String, R2 As String R1 = "Строка ввода" R2 = "Ввод" MsgBox "R2 входит в R1 с позиции " & _ InStr(1, R1, R2, vbTextCompare) End Sub
Популярное: Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас... Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (423)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |