1 / 11

Строки

Строки. Строки в VBA заключаются в двойные кавычки " " . Переменные строкового типа описываются с помощью ключевого слова String . Dim S As String Длина строки ограничена только количеством свободной памяти.

hiroko
Download Presentation

Строки

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Строки

  2. Строки в VBA заключаются в двойные кавычки " ". • Переменные строкового типа описываются с помощью ключевого слова String. • Dim S AsString • Длина строки ограничена только количеством свободной памяти. • Однако следует иметь в виду, что некоторые операторы (например, MsgBox) имеют ограниченные поля для вывода. В них длинные строки могут выводиться не полностью. • В ячейки таблицы записывается строка любой длины.

  3. Строковые функции • Для работы со строками в VBA используются только функции (процедур нет). • LTrim(s) – возвращает строку, отбросив пробелы с левой стороны. • RTrim(s) – возвращает строку, отбросив пробелы с правой стороны. • Trim(s) – возвращает строку, отбросив пробелы с обеих сторон.

  4. Строковые функции • 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".

  5. Строковые функции • Len(s) – возвращает длину строкиs. • UCase(s) ‑ возвращает строку, заменив в ней все маленькие буквы на большие (как латинские, так и русские). • LCase(s) ‑ возвращает строку, заменив в ней все большие буквы на маленькие (как латинские, так и русские).

  6. Строковые функции • Instr(s, s1) – возвращает номер позиции, с которой подстрока s1 встречается в строке s. • Instr(p, s, s1) – возвращает номер позиции, с которой подстрока s1 встречается в строке s, начиная поиск с позиции p. • Instr(p, s, s1, 1) – возвращает номер позиции, с которой подстрока s1 встречается в строке s, начиная поиск с позиции p, при этом, не различаются маленькие и большие буквы.

  7. Строковые функции • String(n,s) ‑ возвращает строку, состоящую из n повторений первого символа строки s. Например, String(5,"asd") возвратит "aaaaa". • Space(n) ‑ возвращает строку, состоящую из n пробелов. • Replace(s, s1, s2) ‑ возвращает строку, заменив в строке s все вхождения строки s1 на строку s2.

  8. Строковые функции • 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")

  9. Для конкатенации строк могут использоваться как символ плюс "+", так и амперсант "&". • Однако имеются существенные различия в их работе. При использовании операции "+" операндами должны быть строки. Например • S="abc"+"defg"+"12" • В результате в переменной s будет "abcdefg12" • Если среди операндов окажется не строковая величина, то будет ошибка, например • S="abc"+"defg"+12 • Здесь возникнет ошибка смешения типов.

  10. Если же воспользоваться оператором "&", то произойдет преобразование численного типа к строковому • S="abc" & "defg" & 12 • И в переменной s будет "abcdefg12". • При использовании оператора "&" все операнды преобразуются к строковому типу, а затем происходит их конкатенация. При этом если операндом является выражение, то сначала оно вычисляется, а потом происходит преобразование к строковому типу, например • s = Sqr(4) & 3 + 7 & "we" • MsgBoxs • На экран будет выведено 210we.

  11. Задачи Задание 1. С клавиатуры вводится строка. К каждому встретившемуся в ней восклицательному знаку приписать еще два. Результат вывести на экран. Задание 2. С клавиатуры вводится строка. Заменить в ней все слова dog на cat. Результат вывести на экран. Задание 3. Выделить с помощью мышки некоторый диапазон ячеек. Все ячейки, в которых в тексте встречается слово dog, закрасить зеленым цветом. Задание 4. Выделить с помощью мышки некоторый диапазон ячеек на первом листе. Переписать содержимое этих ячеек на второй лист в те же ячейки, заменив все встретившиеся слова dog на cat. Задание 5. С клавиатуры вводится строка. Переставить в ней слова таким образом, чтобы они располагались по алфавиту. Задание 6*. С клавиатуры вводится строка вида Ax^2+Bx+C=0, где A, B, C – вещественные числа, На месте любого плюса может стоять минус. Решить данное квадратное уравнение. Результат вывести на экран.

More Related