Bazaprogram.ru

Новости из мира ПК
4 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Vba excel заменить символ в строке

Vba excel заменить символ в строке

Для данных типа String существует только одна операция — конкатенация (объединение). Например, результатом операции конкатенации трех строковых значений «Петр» & » » & «Иванович» будет строка «Петр Иванович». Возможно также использование другого оператора для операции конкатенации, например: «десяти» + «тысячник». Разница между этими выражениями состоит в том, что в первом случае операндами могут быть значения любого типа (они просто будут преобразовываться в строковые), а во втором — оба операнда должны иметь тип String.

Для работы со строками существует большое количество функций (таблица. Функции работы со строками).

Таблица «Функции работы со строками»

ФункцияОписаниеПример
Len(str)Определяет длину строкиИз а=lеn(«Персонажи») следует а=9
Left ( , )Выделяет из аргумента указанное количество символов слеваLeft(» 1234string», 4) =»1234″
Right( , )Выделяет из аргумента указанное количество символов справаRight(» 1234string», 6) =»string»
Mid( , [, ])Выделяет из аргумента подстроку с указанным числом символов, начиная с позицииM
Mid( , )Выделяется подстрока от позиции до конца строкиM
LTrim ( )Удаляет пробелы в начале строкиLTrim(» печать») =»печать»
RTrim ( )Удаляет пробелы в конце строкиRTrim(«печать «) =»печать»
Trim ( )Удаляет пробелы в начале и в конце строкиTrim(» печать «) =»печать»
InStr([ , ] , [, ])Производит поиск подстроки в строке. Возвращает позицию первого вхождения строки в строку , — позиция, с которой начинается поиск. Если этот аргумент пропущен, поиск начинается с начала строкиInstr(«C:Temp test.mdb», «Test»)=9 Если искомая строка не находится в указанной строке, функция возвращает 0
InStrRev ([ , ] , [, ])Ищет подстроку в строке, но начинает поиск с конца строки и возвращает позицию последнего вхождения подстроки. Необязательный аргумент определяет тип сравнения двух строк
Replace ( , , )Позволяет заменить в строке одну подстроку другой. Эта функция ищет все вхождения аргумента в аргументе и заменяет их на

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

Для сравнения строковых значений также применяется оператор Like, который позволяет обнаруживать неточное совпадение, например выражение «Входной сигнал» Like «Вход*» будет иметь значение True, так как сравниваемая строка начинается со слова «Вход». Символ звездочка (*) в строке заменяет произвольное число символов. Другие символы, которые обрабатываются оператором Like в сравниваемой строке:

  • ? — любой символ (один);
  • #- одна цифра (0-9);
  • [ ] — символ, совпадающий с одним из символов списка;
  • [! ] — символ, не совпадающий ни с одним из символов списка.

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

  • Split ( [, ]) — преобразует строку в массив подстрок. По умолчанию в качестве разделителя используется пробел. Данную функцию удобно использовать для разбиения предложения на слова. Однако можно указать в этой функции любой другой разделитель. Например, Split(3, «Это тестовое предложение») возвращает массив из трех строковых значений: «Это», «тестовое», «предложение».
  • Join ( [, ]) — преобразует массив строк в одну строку с указанным разделителем.
  • Filter ( , [, ] [, ]) — просматривает массив строковых значений и ищет в нем все подстроки, совпадающие с заданной строкой.

Эта функция имеет четыре аргумента:

  • — искомая строка;
  • — параметр (boolean значение), который указывает, будут ли возвращаемые строки включать искомую подстроку или, наоборот, возвращаться будут только те строки массива, которые не содержат искомой строки в качестве подстроки;
  • — параметр, определяющий метод сравнения строк.

Еще три функции обеспечивают преобразование строк:

  • LCase ( ) — преобразует все символы строки к нижнему регистру, например функция LCase(«ПОЧTA») возвращает строку «почта»;
  • UCase ( ) — преобразует все символы строки к верхнему регистру;
  • StrConv ( , ) — выполняет несколько типов преобразований строки в зависимости от второго параметра. Этот параметр описывается встроенными константами, например функция StrConv(«poccия», VbProperCase) возвращает значение «Россия».
Читать еще:  Функции массива в excel

И последние две функции генерируют строки символов

  • Space ( ) — создает строку, состоящую из указанного числа пробелов;
  • String ( , ) — создает строку, состоящую из указанного в первом аргументе числа символов. Сам символ указывается во втором аргументе.

Пример

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

1 метка: сообщается длина строки, введенной в первое текстовое поле (1 строка);

2 метка: преобразует все символы третьего текстового поля (3 строка) в заглавные буквы;

3 метка: выводит вместе содержание первого и второго текстовых полей (1 и 2 строки).

Хороший фреймворк (framework) лучшее решение для безпроблемной работы со строками.

Технология выполнения

  • Откройте приложение Word, сохраните документ и перейдите в редактор VBA.
  • Создайте форму аналогично приведенному рисунку.
  • Пропишите обработчик события кнопки ОК.
  • Откомпилируйте программу.
  • Запустите форму на выполнение.

Форма примера в режиме конструктора и в рабочем состоянии

Vba excel заменить символ в строке

Информация о сайте

Инструменты и настройки

Excel Windows
и
Excel Macintosh

Вопросы и решения

Работа и общение

Работа форума и сайта

Функции листа Excel

= Мир MS Excel/Справочники

  • 1
  • 2
  • 3
  • Математические функции [14]
    Функции обработки строк [27]
    Функции загрузки данных [8]
    Функции обработки системных параметров [16]
    Функции работы с датами и временем [21]
    Функции работы с объектами [4]
    Функции форматирования [5]
    ExpressionОбязательный аргумент — строка, в которой требуется замена
    FindОбязательный аргумент — подстрока, которую нужно заменить
    ReplaceОбязательный аргумент — подстрока замены
    StartНеобязательный аргумент — указывает позицию
    CountНеобязательный аргумент — указывает число
    CompareНеобязательный аргумент — вид сравнения

    —>Счетчики : 64907 | —>Добавил : Serge_007

    —>Всего комментариев : 5

    Replace («1011112», «1», «2», 5, 1) выдаёт 212, а надо 1011212

    Это что — глюк или фича? И как в таких случаях быть?

    На сайте Микрософт к функции Replace висит заметка

    Значение, возвращаемое функцией Replace является строкой, которая начинается с позиции, указанной параметром Start, и завершается в конце строки Expression, с заменой подстрок Find значениями Replace.

    Т.е. Если хочешь получить нормальную замену, надо к результату добавить начало исходной строки до позиции Start.

    Функции VBA для работы с текстом

    • ASC ()— эта функция позволяет вернуть числовой код для переданного символа. Например, ASC( «D» ) вернет 68. Эту функцию удобно использовать для того, чтобы определить следующую или предыдущую букву. Обычно она используется вместе с функцией Chr(), которая производит обратную операцию — возвращает символ по переданному его числовому коду.Варианты этой функции — AscB() и AscW():
      • AscB () — возвращает только первый байт числового кода для символа.
      • AscW () — возвращает код для символа в кодировке Unicode
    • Chr () — возвращает символ по его числовому коду. Может использоваться в паре с функцией Asc(), но чаще всего её применяют, когда нужно вывести служебный символ (например кавычки — » ), т.к. кавычки просто так в VBA-коде не ввести(нужно ставить двойные). Я обычно именно эту функцию и использую.

      Dim sWord As String sWord = Chr(34) & «Слово в кавычках» & Chr(34)

      Есть варианты этой функции — ChrB() и ChrW(). Работают аналогично таким же вариантам для функции Asc().
      InStr () и InStrRev ()— одна из самых популярных функций. Позволяет обнаружить в теле строковой переменной символ или последовательность символов и вернуть их позицию. Если последовательность не обнаружена, то возвращается 0.

      Dim sStr As String sStr = «w» If InStr(1, «Hello, World!», sStr, vbTextCompare) > 0 Then MsgBox «Искомое слово присутствует!» Else MsgBox «Искомое слово отсутствует!» End If

      Разница функций в том, что InStr() ищет указанное слово от начала строки, а InStrRev() с конца строки
      Left (), Right (), Mid ()— возможность взять указанное вами количество символов из существующей строковой переменной слева, справа или из середины соответственно.

      Dim sStr As String sStr = «Hello, World!» MsgBox Mid(sStr, 1, 5)

      Dim sStr As String sStr = «Hello, World!» MsgBox Replace(sStr, «Hello», «Bay»)

      Dim sStr As String sStr = «Hello, World!» MsgBox StrConv(«Hello, World!», vbUpperCase)

      В качестве второго параметра параметра могут применяться константы:

      • vbUpperCase: Преобразует все текстовые символы в ВЕРХНИЙ РЕГИСТР
      • vbLowerCase: Преобразует все текстовые символы в нижний регистр
      • vbProperCase: Переводит первый символ каждого слова в Верхний Регистр
      • *vbWide: Преобразует символы строки из однобайтовых в двухбайтовые
      • *vbNarrow: Преобразует символы строки из двухбайтовых в однобайтовые
      • **vbKatakana: Преобразует символы Hiragana в символы Katakana
      • **vbHiragana: Преобразует символы Katakana в символы Hiragana
      • ***vbUnicode: Преобразует строку в Юникод с помощью кодовой страницы системы по умолчанию
      • ***vbFromUnicode: Преобразует строку из Юникод в кодовую страницу системы по умолчанию

      * применимо для локализацией Дальнего востока
      ** применимо только для Японии
      *** не поддерживается операционными системами под управлением Macintosh

  • StrReverse () — «перевернуть» строку, разместив ее символы в обратном порядке. Функция работает только начиная от Excel 2000 и выше. Пример использования функции, а так же иные методы переворачивания слова можно посмотреть в этой статье: Как перевернуть слово?
  • Tab () — еще одна функция, которая используется для форматирования вывода на консоль. Размножает символы табуляции в том количестве, в котором вы укажете. Если никакое количество не указано, просто вставляет символ табуляции. Для вставки символа табуляции в строковое значение можно также использовать константу vbTab.
  • String () — позволяет получить строку из указанного количества символов (которые опять-таки указываются Вами). Обычно используются для форматирования вывода совместно с функцией Len().
  • Урок 14 по VBA — функции работы со строками

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

    VBA функции работы со строками

    ASC (строковое значение) – применяется для получения числового ASCII кода заданного символа. В качестве параметра можно передать как целую строку (проверка произойдет для первого символа в строке), так и один символ или пробел.

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

    InStr (строка1, строка2, [старт]) – предназначена для поиска последовательности знаков (строка2) в заданной строке (строка1). Можно также задать начальную позицию для поиска вхождения (необязательный параметр “старт”).

    InStrRev (строка1, строка2, [старт]) – аналог предыдущей функции, но поиск происходит в обратном порядке.

    Left (строка, длина) – позволяет вернуть заданное количество знаков (параметр “длина”) для выбранной строки (параметр “ строка ”), начиная слева.

    Right (строка, длина) – позволяет вернуть заданное количество знаков для выбранной строки, начиная справа.

    Mid (строка, длина, старт) – позволяет вернуть заданное количество знаков (параметр “длина”) для выбранной строки, начиная с заданной позиции (параметр “старт”).

    Len (строка) – определяет численное количество символов в строке.

    LCase (строка) – предназначена для преобразования всех символов в переданной строке в нижний регистр.

    UCase (строка) – предназначена для преобразования всех символов в переданной строке в верхний регистр.

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

    RSet (строка, длина) – логика работы та же, что и для предыдущей vba функции работы со строками, но процесс происходит справа.

    LTrim (строка) – удалить пробелы слева в строке

    RTrim (строка) – удалить пробелы справа в строке

    Trim (строка) – удалить пробелы справа и слева в строке

    Replace () – замена в строке одних символов на другие

    Space (количество_пробелов) – формирование строки из заданного количества пробелов

    String (количество, символ) – формирование строки из заданного количества прописанных символов

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

    StrComp (строка1, строка2) – сравнение двух строк, вернет 0 при равенстве, и -1 в противном случае.

    StrConv (строка, метод, [LCID]) – данная функция vba является универсальной, так как позволяет преобразовать заданную строку в различные вариации (верхний и нижний регистр, кодировка, перевод байт).

    • Строка – собственно, строковое значение, над которым нужно провести преобразование.
    • Метод – задает метод преобразования, данный параметр может принимать следующие значения:
    1. vbUpperCase – перевод в верхний регистр, значение 1
    2. vbLowerCase – перевод в нижний регистр, значение 2
    3. vbPropperCase – перевод первых символов всех слов в верхний регистр, а остальные символы – в нижний, значение 3.
    4. vbWide – применяется для кодировки восточных языков. Перевод символов в один байт с двухбайтовых. Значение 4.
    5. vbNarrow – аналог предыдущему параметру, но тут происходит перевод двух байт в один, значение 8.
    6. vbKatakana – происходит преобразование символов алфавита Хирагана в символы для алфавита Катана, применим для японского языка, значение 16.
    7. vbHiragana – аналог предыдущего параметра, но тут происходит преобразования вида Катана в Хирагана, значение 32. VBA строковые функции
    8. vbUnicode – перевод заданной строки в Unicode кодировку, значение 64.
    9. vbFormatUnicode – перевод из кодировки Unicode в стандартную, значение 128.
    • LCID – параметр не является обязательным, (vba строковые функции) он задает идентификатор региональных настроек. По умолчанию значение LocaleId, то есть, то значение, что установлено в панели управления.

    StrReverse (строка) – инвертировать расположение знаков в строке, проще говоря, “отзеркаливает”.

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

    Аналогичные VBA строковые функции используются и в языке VBScript сервера сценариев Windows Script Host.

    Спасибо за внимание. Автор блога Владимир Баталий

    Ссылка на основную публикацию
    Adblock
    detector