Excel vba chr пробел

Работа с текстом в коде VBA Excel. Функции, оператор & и другие ключевые слова для работы с текстом. Примеры использования некоторых функций и ключевых слов.

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

Основные функции для работы с текстом в VBA Excel:

Функция Описание
Asc(строка) Возвращает числовой код символа, соответствующий первому символу строки. Например: MsgBox Asc(«/Stop»). Ответ: 47, что соответствует символу «/».
Chr(код символа) Возвращает строковый символ по указанному коду. Например: MsgBox Chr(47). Ответ: «/».
Format(Expression, [FormatExpression], [FirstDayOfWeek], [FirstWeekOfYear]) Преобразует число, дату, время в строку (тип данных Variant (String)), отформатированную в соответствии с инструкциями, включенными в выражение формата. Подробнее…
InStr([начало], строка1, строка2, [сравнение]) Возвращает порядковый номер символа, соответствующий первому вхождению одной строки (строка2) в другую (строка1) с начала строки. Подробнее…
InstrRev(строка1, строка2, [начало, [сравнение]]) Возвращает порядковый номер символа, соответствующий первому вхождению одной строки (строка2) в другую (строка1) с конца строки. Подробнее…
Join(SourceArray,[Delimiter]) Возвращает строку, созданную путем объединения нескольких подстрок из массива. Подробнее…
LCase(строка) Преобразует буквенные символы строки в нижний регистр.
Left(строка, длина) Возвращает левую часть строки с заданным количеством символов. Подробнее…
Len(строка) Возвращает число символов, содержащихся в строке.
LTrim(строка) Возвращает строку без начальных пробелов (слева). Подробнее…
Mid(строка, начало, [длина]) Возвращает часть строки с заданным количеством символов, начиная с указанного символа (по номеру). Подробнее…
Replace(expression, find, replace, [start], [count], [compare]) Возвращает строку, полученную в результате замены одной подстроки в исходном строковом выражении другой подстрокой указанное количество раз. Подробнее…
Right(строка, длина) Возвращает правую часть строки с заданным количеством символов. Подробнее…
RTrim(строка) Возвращает строку без конечных пробелов (справа). Подробнее…
Space(число) Возвращает строку, состоящую из указанного числа пробелов. Подробнее…
Split(Expression,[Delimiter],[Limit],[Compare]) Возвращает одномерный массив подстрок, извлеченных из указанной строки с разделителями. Подробнее…
StrComp(строка1, строка2, [сравнение]) Возвращает числовое значение Variant (Integer), показывающее результат сравнения двух строк. Подробнее…
StrConv(string, conversion) Изменяет регистр символов исходной строки в соответствии с заданным параметром «conversion». Подробнее…
String(число, символ) Возвращает строку, состоящую из указанного числа символов. В выражении «символ» может быть указан кодом символа или строкой, первый символ которой будет использован в качестве параметра «символ». Подробнее…
StrReverse(строка) Возвращает строку с обратным порядком следования знаков по сравнению с исходной строкой. Подробнее…
Trim(строка) Возвращает строку без начальных (слева) и конечных (справа) пробелов. Подробнее…
UCase(строка) Преобразует буквенные символы строки в верхний регистр.
Val(строка) Возвращает символы, распознанные как цифры с начала строки и до первого нецифрового символа, в виде числового значения соответствующего типа. Подробнее…
WorksheetFunction.Trim(строка) Функция рабочего листа, которая удаляет все лишние пробелы (начальные, конечные и внутренние), оставляя внутри строки одиночные пробелы.

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

Ключевые слова для работы с текстом

Ключевое слово Описание
& Оператор & объединяет два выражения (результат = выражение1 & выражение2). Если выражение не является строкой, оно преобразуется в Variant (String), и результат возвращает значение Variant (String). Если оба выражения возвращают строку, результат возвращает значение String.
vbCrLf Константа vbCrLf сочетает в себе возврат каретки и перевод строки (Chr(13) + Chr(10)) и переносит последующий текст на новую строку (результат = строка1 & vbCrLf & строка2).
vbNewLine Константа vbNewLine в VBA Excel аналогична константе vbCrLf, также сочетает в себе возврат каретки и перевод строки (Chr(13) + Chr(10)) и переносит текст на новую строку (результат = строка1 & vbNewLine & строка2).

Примеры

Вывод прямых парных кавычек

Прямые парные кавычки в VBA Excel являются спецсимволами и вывести их, заключив в самих себя или в одинарные кавычки (апострофы), невозможно. Для этого подойдет функция Chr:

Sub Primer1()

    ‘Вывод одной прямой парной кавычки

MsgBox Chr(34)

    ‘Отображение текста в прямых кавычках

MsgBox Chr(34) & «Волга» & Chr(34)

    ‘Вывод 10 прямых парных кавычек подряд

MsgBox String(10, Chr(34))

End Sub

Смотрите интересное решение по выводу прямых кавычек с помощью прямых кавычек в первом комментарии.

Отображение слов наоборот

Преобразование слова «налим» в «Милан»:

Sub Primer2()

Dim stroka

    stroka = «налим»

    stroka = StrReverse(stroka) ‘милан

    stroka = StrConv(stroka, 3) ‘Милан

MsgBox stroka

End Sub

или одной строкой:

Sub Primer3()

MsgBox StrConv(StrReverse(«налим»), 3)

End Sub

Преобразование слова «лето» в «отель»:

Sub Primer4()

Dim stroka

    stroka = «лето»

    stroka = StrReverse(stroka) ‘отел

    stroka = stroka & «ь» ‘отель

MsgBox stroka

End Sub

или одной строкой:

Sub Primer5()

MsgBox StrReverse(«лето») & «ь»

End Sub

Печатная машинка

Следующий код VBA Excel в замедленном режиме посимвольно печатает указанную строку на пользовательской форме, имитируя печатную машинку.

Для реализации этого примера понадобится пользовательская форма (UserForm1) с надписью (Label1) и кнопкой (CommandButton1):

Пользовательская форма с элементами управления Label и CommandButton

Код имитации печатной машинки состоит из двух процедур, первая из которых замедляет выполнение второй, создавая паузу перед отображением очередного символа, что и создает эффект печатающей машинки:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

Sub StopSub(Pause As Single)

Dim Start As Single

Start = Timer

    Do While Timer < Start + Pause

       DoEvents

    Loop

End Sub

Private Sub CommandButton1_Click()

Dim stroka As String, i As Byte

stroka = «Печатная машинка!»

Label1.Caption = «»

    For i = 1 To Len(stroka)

        Call StopSub(0.25) ‘пауза в секундах

        ‘следующая строка кода добавляет очередную букву

        Label1.Caption = Label1.Caption & Mid(stroka, i, 1)

    Next

End Sub

Обе процедуры размещаются в модуле формы. Нажатие кнопки CommandButton1 запустит замедленную печать символов в поле надписи, имитируя печатную машинку.


Содержание

  1. Функция Chr
  2. Синтаксис
  3. Замечания
  4. Пример
  5. См. также
  6. Поддержка и обратная связь
  7. Chr function
  8. Syntax
  9. Remarks
  10. Example
  11. See also
  12. Support and feedback
  13. Character set (0 — 127)
  14. See also
  15. Support and feedback
  16. Функции VBA для работы с текстом

Функция Chr

Возвращает значение типа String, которое содержит символ, связанный с указанным кодом символа.

Синтаксис

Chr(charcode)
ChrB(charcode)
ChrW(charcode)

Обязательным аргументомcharcode является long, который идентифицирует символ.

Замечания

Числа от 0 до 31 совпадают со стандартными, непечатаемыми кодами ASCII . Например, Chr(10) возвращает символ перевода строки. Обычный диапазон для charcode — 0–255. Однако в системах DBCS фактический диапазон для charcode составляет -32768–65535.

Функция ChrB используется с байтовыми данными, содержащимися в значении String. Вместо знака, который может состоять из одного или двух байт, ChrB всегда возвращает один байт.

Функция ChrW возвращает переменную String, которая содержит знак Юникода. Исключение составляют платформы, не поддерживающие Юникод; в этом случае функция работает так же, как функция Chr.

Visual Basic для macOS не поддерживает строки Юникода. Поэтому ChrW(n) не может возвращать все символы Юникода для n значений в диапазоне от 128 до 65 535, как это делается в среде Windows. Вместо этого ChrW(n) использует «наилучшую замену» для значений Юникода больше 127. В связи с этим не следует использовать ChrW в macOS.

Функции Asc(), AscB() и AscW() противоположны Chr(), ChrB() и ChrW(). Функции Asc() преобразуют строку в целое число.

Пример

В данном примере функция Chr возвращает знак, соответствующий указанному коду знака.

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Источник

Chr function

Returns a String containing the character associated with the specified character code.

Syntax

Chr(charcode)
ChrB(charcode)
ChrW(charcode)

The required charcode argument is a Long that identifies a character.

Numbers from 0–31 are the same as standard, nonprintable ASCII codes. For example, Chr(10) returns a linefeed character. The normal range for charcode is 0–255. However, on DBCS systems, the actual range for charcode is -32768–65535.

The ChrB function is used with byte data contained in a String. Instead of returning a character, which may be one or two bytes, ChrB always returns a single byte.

The ChrW function returns a String containing the Unicode character except on platforms where Unicode is not supported, in which case, the behavior is identical to the Chr function.

Visual Basic for the Macintosh does not support Unicode strings. Therefore, ChrW(n) cannot return all Unicode characters for n values in the range of 128–65,535, as it does in the Windows environment. Instead, ChrW(n) attempts a «best guess» for Unicode values n greater than 127. Therefore, you should not use ChrW in the Macintosh environment.

The functions Asc(), AscB(), and AscW() are the opposite of Chr(), ChrB(), and ChrW(). The Asc() functions convert a string to an integer.

Example

This example uses the Chr function to return the character associated with the specified character code.

See also

Support and feedback

Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

Источник

Character set (0 — 127)

—>

Code Character Code Character Code Character Code Character
0  32 [space] 64 @ 96 `
1  33 ! 65 A 97 a
2  34 « 66 B 98 b
3  35 # 67 C 99 c
4  36 $ 68 D 100 d
5  37 % 69 E 101 e
6  38 & 70 F 102 f
7  39 71 G 103 g
8 * * 40 ( 72 H 104 h
9 * * 41 ) 73 I 105 i
10 * * 42 * 74 J 106 j
11  43 + 75 K 107 k
12  44 , 76 L 108 l
13 * * 45 77 M 109 m
14  46 . 78 N 110 n
15  47 / 79 O 111 o
16  48 0 80 P 112 p
17  49 1 81 Q 113 q
18  50 2 82 R 114 r
19  51 3 83 S 115 s
20  52 4 84 T 116 t
21  53 5 85 U 117 u
22  54 6 86 V 118 v
23  55 7 87 W 119 w
24  56 8 88 X 120 x
25  57 9 89 Y 121 y
26  58 : 90 Z 122 z
27  59 ; 91 [ 123 <
28  60 94 ^ 126
31  63 ? 95 _ 127 

The values with blanks are control characters, not characters displayed or printed by Windows.

Values 8, 9, 10, and 13 convert to backspace, tab, linefeed, and carriage return characters, respectively. They have no graphical representation but, depending on the application, can affect the visual display of text.

See also

Support and feedback

Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

Источник

Функции 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().
  • Источник

    Как поменять перенос строки на пробел или наоборот в Excel с помощью VBA

    Рассмотрим пример для выделенных ячеек. То есть мы выделяем требуемые ячейки и запускаем макрос

    1. Меняем пробелы на переносы в выделенных ячейках с помощью VBA

    Код:

    Sub ПробелыНаПереносы()

    For Each cell In Selection

    cell.Value = Replace(cell.Value, Chr(32), Chr(10))

    Next

    End Sub

    2. Меняем переносы на пробелы в выделенных ячейках с помощью VBA

    Код:

    Sub ПереносыНаПробелы()

    For Each cell In Selection

    cell.Value = Replace(cell.Value, Chr(10), Chr(32))

    Next

    End Sub

    Код очень простой Chr(10) — это перенос строки, Chr(32) — это пробел. Если требуется поменять на любой другой символ, то заменяете просто номер кода, соответствующий требуемому символу.

    Коды символов для Excel

    Главная » Функции VBA »

    28 Апрель 2011              351370 просмотров

    • 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)
    • Len() — возможность получить число символов в строке. Часто используется с циклами, операциями замены и т.п.
    • LCase() и UCase() — перевести строку в нижний и верхний регистры соответственно. Часто используется для подготовки значения к сравнению, когда при сравнении регистр не важен (фамилии, названия фирм, городов и т.п.).
    • LSet() и RSet() — возможность заполнить одну переменную символами другой без изменения ее длины (соответственно слева и справа). Лишние символы обрезаются, на место недостающих подставляются пробелы.
    • LTrim(), RTrim(), Trim() — возможность убрать пробелы соответственно слева, справа или и слева, и справа.
    • Replace()— возможность заменить в строке одну последовательность символов на другую.
          Dim sStr As String
          sStr = "Hello, World!"
          MsgBox Replace(sStr, "Hello", "Bay")
    • Space() — получить строку из указанного вами количества пробелов;
      Еще одна похожая функция — Spc(), которая используется для форматирования вывода на консоль. Она размножает пробелы с учетом ширины командной строки.
    • StrComp() — возможность сравнить две строки.
    • StrConv() — возможность преобразовать строку (в Unicode и обратно, в верхний и нижний регистр, сделать первую букву слов заглавной и т.п.):
          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().

    Статья помогла? Сделай твит, поделись ссылкой с друзьями!

    Excel Text and String Functions:

    Excel CODE & CHAR Functions, VBA Asc & Chr Functions, with examples.

    Related Links:

    1. Using VBA Chr and Asc functions to convert excel column number to corresponding column letter, and column letter to column number.

    2. ASCII Code, Extended ASCII characters (8-bit system) and ANSI Code.

    3. Excel Text and String Functions: TRIM & CLEAN.

    4. Excel Text and String Functions: LEFT, RIGHT, MID, LEN, FIND, SEARCH, REPLACE, SUBSTITUTE.


    Excel CODE Function (Worksheet)

    The CODE Function returns the identifying numeric code of the first character in a text string. A ‘character set’ maps characters to their identifying code values, and may vary across operating environments viz. Windows, Macintosh, etc. The Windows operating environment uses the ANSI character set, whereas Macintosh uses the Macintosh character set. The returned numeric code corresponds to this character set — for a Windows computer, Excel uses the standard ANSI character set to return the numeric code. Syntax: CODE(text_string). The text_string argument is the text string whose first character’s numeric code is returned.  

    The equivalent of excel CODE function in vba is the Asc function. Note that the Excel CODE function is the inverse of the Excel CHAR function. The formula =CODE(CHAR(65)) returns 65, because =CHAR(65) returns the character «A» and =CODE(«A») returns 65. 

    In a Windows computer, Code function will return values as follows:

    =CODE(«A») returns 65.

    =CODE(«B») returns 66.

    =CODE(«a») returns 97.

    =CODE(«b») returns 98.

    =CODE(«0») returns 48.

    =CODE(«1») returns 49.

    =CODE(«-1») returns 45, which is the code for «-» (hyphen) .

    =CODE(» «) , note the space between inverted commas, returns 32.

    =CODE(«»), no space between inverted commas, returns the #VALUE! error value.

    =CODE(«America») returns 65, which is the code for «A», the first character in the text string.

    =CODE(A1) returns 66, using cell reference. If cell A1 contains the text «Bond», CODE(A1) returns 66, which is the code for «B», the first character in the text string.

    =CODE(«?») returns 63.

    =CODE(«™») returns 153.


    Excel CHAR Function (Worksheet)

    Use the CHAR Function to return the character identified to the specified number. A ‘character set’ maps characters to their identifying code values, and may vary across operating environments viz. Windows, Macintosh, etc. The Windows operating environment uses the ANSI character set, whereas Macintosh uses the Macintosh character set. The returned character corresponds to this character set — for a Windows computer, Excel uses the standard ANSI character set. Syntax: CHAR(number). The number argument is a number between 1 and 255 which identifies the returned character. The function returns the #VALUE! error value if this argument is not a number between 1 and 255.

    The equivalent of excel CHAR function in vba is the Chr function. Note that the Excel CHAR function is the inverse of the Excel CODE function. The formula =CHAR(CODE(«A»)) returns A, because =CODE(«A») returns the number 65 and =CHAR(65) returns A. 

    In a Windows computer, Char function will return values as follows:

    =CHAR(65) returns the character «A».

    =CHAR(37) returns the character «%».

    =CHAR(260) returns the #VALUE! error value.

    =CHAR(163) returns the character «£».

    =CHAR(A1) returns the character «B», using cell reference. If cell A1 contains the number 66, CHAR(A1) returns the character «B».


    Examples of using the Excel CODE & CHAR Functions

    Changing case (uppercase / lowercase) of alphabets in a string

    Formula  =CHAR(CODE(A1)+32) returns the lowercase letter «b», if cell A1 contains the uppercase letter «B». This is because in the ANSI character set, the lowercase alphabets appear after uppercase alphabets, in an alphabetic order,  with a difference of exactly 32 numbers. Similarly, =CHAR(CODE(A1)-32) returns the uppercase letter «B», if cell A1 contains the lowercase letter «b».

    Convert first character of the first word in a text string (consisting of letters), to lowercase, and first character of all subsequent words to uppercase. To convert the string «we like james bond» in cell A1 to «we Like James Bond» use the following formula:

    =REPLACE(PROPER(A1), 1,1, CHAR(CODE( LEFT(PROPER(A1)))+32))

    =PROPER(A1)   returns the text string «We Like James Bond».

    =CHAR(CODE(LEFT( PROPER(A1)))+32)   returns the lowercase text «w».

    The formula replaces the first character of the text, by first capitalizing it and then converting it to lowercase using CHAR/CODE functions.

    It may however be noted, that the excel UPPER (or LOWER) function can also be used as alternate to CHAR/CODE functions. In this case the Formula  =REPLACE(PROPER(A1),1,1,LOWER(LEFT(PROPER(A1)))) will also give the same result and return the string «we Like James Bond».

    —————————————————————————————————————————-

    Making the above formula more complex:

    Convert first character of the second word in a text string (consisting of letters) to lowercase, and the first character of all other words to uppercase (wherein words are separated by a single space). To convert the string «we Like James bond» in cell A1 to «We like James Bond» use the following formula: 

    =REPLACE(PROPER(A1), FIND(» «, A1)+1, 1, CHAR(CODE(MID(PROPER(A1), FIND(» «, A1)+1, 1))+32))

    =PROPER(A1)   returns text string «We Like James Bond».

    =FIND(» «, A1)+1   returns the position 4.

    =MID(PROPER(A1), FIND(» «, A1)+1,1)    returns L.

    =CODE(MID(PROPER(A1), FIND(» «, A1)+1,1))    returns 76.

    =CHAR(CODE(MID(PROPER(A1), FIND(» «, A1)+1,1))+32)   returns the text «l».

    —————————————————————————————————————————  

    If a text string has irregular spacing (ie. having lead spaces and multiple spaces between words), insert the TRIM function which removes all spaces from text except for single spaces between words:

    =REPLACE(PROPER( TRIM(A1)), FIND(» «, TRIM(A1))+1, 1, CHAR(CODE(MID( PROPER( TRIM(A1)), FIND(» «, TRIM(A1))+1, 1))+32)) 

    Note: In addition to the CHAR, CODE, LEFT & MID functions, we have also used the excel worksheet PROPER function. Syntax: PROPER(text).  This function: (i) Capitalizes any letter in a text string which follows a non-letter character, and also the first letter of the text string; (ii) Converts to Lowercase all other letters.

    —————————————————————————————————————————

    For many letters and controls, it might be much easier to format or otherwise manipulate data with their ANSI codes than using your keyboard.

    If the address is currently split in different cells, and you wish to consolidate in a single cell in multiple lines, use the excel CHAR function as follows (refer Image 1):

    =A1 & CHAR(10) & B1 & CHAR(10) & C1 & CHAR(10) & D1

    The address is currently split in cells A1 to D1 and the above formula consolidates and formats into a single cell in multiple lines.

    10 is the ANSI code (number) for line feed, and it provides the line breaks to format data.

    Ensure that the cell text wrapping is enabled, by clicking on «Wrap Text».

    ————————————————————————————————————————-

    Format a single line address into multiple lines, using the excel CHAR & SUBSTITUTE functions as follows (refer Image 2):

    =SUBSTITUTE(A1,», «,CHAR(10))

    The address is currently mentioned in cell A1 in a single line, and the above formula formats it (in cell A3) by removing commas and into multiple lines.

    10 is the ANSI code (number) for line feed, and it provides the line breaks to format data.

    Ensure that the cell text wrapping is enabled, by clicking on «Wrap Text».

    —————————————————————————————————————————

    NOTE: To format an address with line breaks (appearing in multiple lines in cell A1) to a single line format (cell A3), use the formula (refer Image 3): =SUBSTITUTE(A1, CHAR(10), «, «) 

    ——————————————————————————————————————————  

    To insert special characters or symbols in a text string, use the excel CHAR function:

    =»Exchange Rates Graph of Pound (» & CHAR(163) & «), Euro (» & CHAR(128) & «) and Dollar (» & (CHAR(36) & «)»)

    The above formula inserts currency symbols, using the CHAR function.

    Returns the text string: «Exchange Rates Graph of Pound (£), Euro(€) and Dollar ($)»


    VBA Asc function

    The vba Asc function returns the corresponding character code (Integer data type) for the first letter of a string. Syntax: Asc(string). It is necessary to specify the string argument — it is a string expression whose first letter’s character code is returned. You will get a run time error for a string with no characters. For non-DBCS systems the normal range for the returned number is 0 to 255, but on DBCS systems the range is -32768 to 32767.

    Use the AscW function to return a Unicode character code, but if the platform does not support Unicode then AscW will give results identical to the Asc function. AscW should not be used in the Macintosh environment because Unicode strings are not supported in Visual Basic for the Macintosh.

    VBA Chr function

    The vba Chr function returns a character (string data type) identified to the specified character code. Syntax: Chr(charcode). It is necessary to specify the charcode argument — it is the character code (Long data type) which identifies the returned character. The normal range for charcode is 0 to 255, but on DBCS systems (character set that uses 1 or 2 bytes to represent a character, allowing more than 256 characters to be represented — used for languages such as Japanese and Chinese), the actual range for charcode is -32768 to 65535. Numbers from 0 to 31 are the standard ASCII Non-Printing Control Codes.

    Use the ChrW function to return a Unicode character, but if the platform does not support Unicode ChrW will give results identical to the Chr function. ChrW should not be used in the Macintosh environment because Unicode strings are not supported in Visual Basic for the Macintosh.

    MsgBox Chr(65), returns the letter «A».

    MsgBox Asc(«A»), returns the number 65.

    —————————————————————————————————————————-  

    Sub Chr_Replace()
    ‘using vba Chr() function to replace characters in a string

    Dim str As String

    ‘replaces letter «A» with «B»

    str = Replace(«ABC», Chr(65), Chr(66))

    ‘returns the text «BBC»

    MsgBox str

    End Sub

    ————————————————————————————————————————-  

    Sub TextFormat1()
    ‘using vba chr() function to remove commas and provide line breaks.

    ‘Chr(10) provides line feed/new line, and it replaces all instances of comma & following space, in the text string. Refer Image 4.
    ActiveSheet.Cells(3, 1) = Replace(ActiveSheet.Cells(1, 1), «, «, Chr(10))

    End Sub

    ————————————————————————————————————————————————————  

    Sub TextFormat2()
    ‘inserting symbols using vba chr() function

    Dim str As String

    ‘evaluates to text string «Exchange Rates Graph of Pound (£), Euro (€) and Dollar ($)»
    str = «Exchange Rates Graph of Pound (» & Chr(163) & «), Euro (» & Chr(128) & «) and Dollar (» & (Chr(36) & «)«)

    ‘displays the text string «Exchange Rates Graph of Pound (£), Euro (€) and Dollar ($)»
    MsgBox str

    End Sub

    ————————————————————————————————————————————————————  

    Sub DeleteSpaces()
    ‘remove spaces from a text string, in vba, using the vba Replace function

    Dim str As String

    str = «Removing  Spaces In Text String «

    ‘removes space character with ANSI code 32

    str = Replace(str, Chr(32), «»)

    ‘returns the text «RemovingSpacesInTextString»

    MsgBox str

    End Sub

    ————————————————————————————————————————————————————  

    Sub RemoveNumbers()
    ‘remove characters, say all numericals, from a text string, using the vba Replace function

    Dim str As String, i As Integer

    str = «RemovingNumbers 12in4 Text6 9String5″
     

    ‘chr(48) to chr(57) represent numericals 0 to 9 in ANSI/ASCII character codes

    For i = 48 To 57

    ‘remove all numericals from the text string using vba Replace function:

    str = Replace(str, Chr(i), «»)

    Next i

    ‘returns text «Removing Numbers in Text String»

    MsgBox str

    End Sub

    ————————————————————————————————————————————————————

    Sub ManipulateTextString()
    ‘manipulate text string consisting of only letters & spaces: remove all spaces, separate each word with comma, capitalize first letter of each word & convert all other letters to lowercase

    Dim str As String

    str = « red   Blue white  GREEN  yellow    «

    ‘use the worksheet Trim function to remove all spaces from text leaving only single spaces between words — also deletes all leading & trailing spaces

    str = Application.Trim(str)

    ‘replaces space character (ANSI code 32) with comma character (ANSI code 44)

    str = Replace(str, Chr(32), Chr(44))

    ‘use the worksheet Proper function to: Capitalize the first letter & any other letter which follows a non-letter character; also converts to Lowercase all other letters.

    str = Application.Proper(str)

    ‘returns the text «Red,Blue,White,Green,Yellow»

    MsgBox str


    End Sub

    ————————————————————————————————————————————————————

    VBA Codes:

    Using VBA Chr and Asc functions to convert excel column number to corresponding column letter, and column letter to column number.

    Понравилась статья? Поделить с друзьями:
  • Excel vba calling a sub
  • Excel vba call sub from sub
  • Excel vba call a function from a function
  • Excel vba byval target as range
  • Excel vba byref argument type mismatch vba