110 likes | 503 Views
Строки. Строки в VBA заключаются в двойные кавычки " " . Переменные строкового типа описываются с помощью ключевого слова String . Dim S As String Длина строки ограничена только количеством свободной памяти.
E N D
Строки в VBA заключаются в двойные кавычки " ". • Переменные строкового типа описываются с помощью ключевого слова String. • Dim S AsString • Длина строки ограничена только количеством свободной памяти. • Однако следует иметь в виду, что некоторые операторы (например, MsgBox) имеют ограниченные поля для вывода. В них длинные строки могут выводиться не полностью. • В ячейки таблицы записывается строка любой длины.
Строковые функции • Для работы со строками в VBA используются только функции (процедур нет). • LTrim(s) – возвращает строку, отбросив пробелы с левой стороны. • RTrim(s) – возвращает строку, отбросив пробелы с правой стороны. • Trim(s) – возвращает строку, отбросив пробелы с обеих сторон.
Строковые функции • Left(s, n) – возвращает n левых символов строкиs. • Right(s, n) – возвращает n правых символов строкиs. • Mid(s, k, n) – возвращает n символов строки s начиная с k-го символа, если последний параметр пропущен, то функция возвращает весь остаток строкиs, начиная с k-го символа. • Возможно использование функции Mid в левой части операции присваивания. Например, • S="abcdefg" • Mid(s, 3, 2)="12" • После выполнения этих операторов в строке s будет "ab12efg".
Строковые функции • Len(s) – возвращает длину строкиs. • UCase(s) ‑ возвращает строку, заменив в ней все маленькие буквы на большие (как латинские, так и русские). • LCase(s) ‑ возвращает строку, заменив в ней все большие буквы на маленькие (как латинские, так и русские).
Строковые функции • Instr(s, s1) – возвращает номер позиции, с которой подстрока s1 встречается в строке s. • Instr(p, s, s1) – возвращает номер позиции, с которой подстрока s1 встречается в строке s, начиная поиск с позиции p. • Instr(p, s, s1, 1) – возвращает номер позиции, с которой подстрока s1 встречается в строке s, начиная поиск с позиции p, при этом, не различаются маленькие и большие буквы.
Строковые функции • String(n,s) ‑ возвращает строку, состоящую из n повторений первого символа строки s. Например, String(5,"asd") возвратит "aaaaa". • Space(n) ‑ возвращает строку, состоящую из n пробелов. • Replace(s, s1, s2) ‑ возвращает строку, заменив в строке s все вхождения строки s1 на строку s2.
Строковые функции • Val(s) – переводит строку в число. Эта функция существенно отличается от функций преобразования типов, которые уже были нами пройдены (CInt, CLng, CSng, CDbl). Функция Val пытается перевести в число ту часть строки, начиная с первого символа, которая может рассматриваться как число. Например • Val("2.3") возвратит число 2.3 • Val("2.3asd") возвратит число 2.3 • Val("2.3 5 4.3") возвратит число 2.354, т.к. вторая точка уже не может быть частью числа, а пробелы в данном случае не учитываются. • Val("2,3") возвратит число 2, т.к. запятая не является разделителем целой и дробной части. • Если же уже первый символ не может быть частью числа, то функция Val возвращает 0, например • Val("asd")
Для конкатенации строк могут использоваться как символ плюс "+", так и амперсант "&". • Однако имеются существенные различия в их работе. При использовании операции "+" операндами должны быть строки. Например • S="abc"+"defg"+"12" • В результате в переменной s будет "abcdefg12" • Если среди операндов окажется не строковая величина, то будет ошибка, например • S="abc"+"defg"+12 • Здесь возникнет ошибка смешения типов.
Если же воспользоваться оператором "&", то произойдет преобразование численного типа к строковому • S="abc" & "defg" & 12 • И в переменной s будет "abcdefg12". • При использовании оператора "&" все операнды преобразуются к строковому типу, а затем происходит их конкатенация. При этом если операндом является выражение, то сначала оно вычисляется, а потом происходит преобразование к строковому типу, например • s = Sqr(4) & 3 + 7 & "we" • MsgBoxs • На экран будет выведено 210we.
Задачи Задание 1. С клавиатуры вводится строка. К каждому встретившемуся в ней восклицательному знаку приписать еще два. Результат вывести на экран. Задание 2. С клавиатуры вводится строка. Заменить в ней все слова dog на cat. Результат вывести на экран. Задание 3. Выделить с помощью мышки некоторый диапазон ячеек. Все ячейки, в которых в тексте встречается слово dog, закрасить зеленым цветом. Задание 4. Выделить с помощью мышки некоторый диапазон ячеек на первом листе. Переписать содержимое этих ячеек на второй лист в те же ячейки, заменив все встретившиеся слова dog на cat. Задание 5. С клавиатуры вводится строка. Переставить в ней слова таким образом, чтобы они располагались по алфавиту. Задание 6*. С клавиатуры вводится строка вида Ax^2+Bx+C=0, где A, B, C – вещественные числа, На месте любого плюса может стоять минус. Решить данное квадратное уравнение. Результат вывести на экран.