Excel vba код пробела

Работа с текстом в коде 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().
  • Источник

    32 / 2 / 0

    Регистрация: 31.12.2010

    Сообщений: 91

    1

    добавить пробел

    17.02.2011, 11:37. Показов 23473. Ответов 17


    Студворк — интернет-сервис помощи студентам

    Подскажите, что нужно добавить в следующий код, чтобы между словами в строках Cells(9, 1) и Cells(9, 2) ставился пробел?

    «<font face=arial><a href=mailto:» + Worksheets(«Body»).Cells(9, 1) + «>» + Worksheets(«Body»).Cells(9, 1) + «</a></font>» + _
    «<font face=arial><b>» + Worksheets(«Body»).Cells(9, 2) + «</b></font><br><br>»



    0



    195 / 187 / 15

    Регистрация: 09.02.2011

    Сообщений: 457

    17.02.2011, 12:33

    3

    + » » + в нужном месте…

    вроде для конкатенации лучше использовать & а не +



    0



    32 / 2 / 0

    Регистрация: 31.12.2010

    Сообщений: 91

    17.02.2011, 13:00

     [ТС]

    4

    с + » «+ пробовала, не получается



    0



    11482 / 3773 / 677

    Регистрация: 13.02.2009

    Сообщений: 11,145

    17.02.2011, 13:10

    5



    0



    mc-black

    2784 / 716 / 106

    Регистрация: 04.02.2011

    Сообщений: 1,443

    17.02.2011, 13:20

    6

    Если имеется ввиду пробел, не вызывающий перенос слова, то так:

    Visual Basic
    1
    
    + "&nbsp;" +



    0



    Busine2009

    Заблокирован

    17.02.2011, 13:23

    7

    mc-black,
    всё, что в кавычках, — является в VBA текстом, т.к. в вашем случае будет просто текст &nbsp;



    0



    32 / 2 / 0

    Регистрация: 31.12.2010

    Сообщений: 91

    17.02.2011, 15:49

     [ТС]

    8

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



    0



    4377 / 661 / 36

    Регистрация: 17.01.2010

    Сообщений: 2,134

    17.02.2011, 16:30

    9

    dim myStr As string
    mystr=Cells(9,1).value & » » & Cells(9,2).Value



    0



    195 / 187 / 15

    Регистрация: 09.02.2011

    Сообщений: 457

    17.02.2011, 16:54

    10

    Напишите сюда что у Вас получилось… а лучше не кусок кода весь…



    0



    32 / 2 / 0

    Регистрация: 31.12.2010

    Сообщений: 91

    17.02.2011, 17:27

     [ТС]

    11

    спасибо. «&nbsp» помогло, а как сделать двойной или тройной пробел?



    0



    195 / 187 / 15

    Регистрация: 09.02.2011

    Сообщений: 457

    17.02.2011, 17:49

    12

    если двойной — это два пробела, то судя по всему «&nbsp&nbsp»



    0



    Busine2009

    Заблокирован

    17.02.2011, 19:53

    13

    Цитата
    Сообщение от Bazzy
    Посмотреть сообщение

    «&nbsp&nbsp»

    напишите пример, как это можно применить.



    0



    mc-black

    2784 / 716 / 106

    Регистрация: 04.02.2011

    Сообщений: 1,443

    17.02.2011, 19:55

    14

    Не совсем так, надо:

    Visual Basic
    1
    
    + "&nbsp;&nbsp;" +

    Для тех, кто не в курсе, это был фрагмент программной генерации html кода.



    0



    0 / 0 / 0

    Регистрация: 15.03.2016

    Сообщений: 105

    01.06.2016, 12:34

    15

    Можно вопрос, как тогда сделать вот это
    OOO СК «Шар-М» (ранее ООО ШАР «ИНТЕКС-ШАР»)



    0



    6875 / 2807 / 533

    Регистрация: 19.10.2012

    Сообщений: 8,562

    01.06.2016, 12:39

    16

    Ну Вы ведь это уже сделали!



    0



    0 / 0 / 0

    Регистрация: 15.03.2016

    Сообщений: 105

    01.06.2016, 12:45

    17

    сделал но без пробелов, в листе1 в ячейке OOO СК «Шар-М» (ранее ООО ШАР «ИНТЕКС-ШАР»)

    не пропускает, пусто



    0



    0 / 0 / 0

    Регистрация: 15.03.2016

    Сообщений: 105

    02.06.2016, 18:39

    18

    Данная задача решена



    0



    title keywords f1_keywords ms.prod ms.assetid ms.date ms.localizationpriority

    Chr function (Visual Basic for Applications)

    vblr6.chm1020927

    vblr6.chm1020927

    office

    a9dc96ec-4719-8d24-144b-61d45fa58fe5

    12/11/2019

    high

    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.

    Remarks

    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.

    [!NOTE]
    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.

    [!NOTE]
    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.

    Dim MyChar
    MyChar = Chr(65)    ' Returns A.
    MyChar = Chr(97)    ' Returns a.
    MyChar = Chr(62)    ' Returns >.
    MyChar = Chr(37)    ' Returns %.

    See also

    • Character set (0 — 127)
    • Character set (128 — 255)
    • Functions (Visual Basic for Applications)
    • Asc(), AscB(), and AscW() functions

    [!includeSupport and feedback]

    StrConv(String,Conversion,[LocaleID])

    Функция StrConv служит для преобразования всех символов строки в соответствии с заданным видом преобразования.В версии VB/VB 6 добавлены дополнительные возможности

    Возвращаемое значение

    Возвращает значение типа Variant (String), содержащее преобразованную строку

    Параметры
    Функция содержит именованные аргументы

    String Обязательный аргумент — строковое выражение, которое следует преобразовать
    Conversion Обязательный аргумент — значение типа Integer, равное сумме констант, указывающих тип преобразования, которое следует выполнить. Смотри ниже
    LocaleID Необязательный аргумент — локальный идентификатор, если отличается отличается от системного идентификатора. По умолчанию — локальный идентификатор

    Константы, задающие коды допустимых преобразований строки:

    Константа Значение Описание
    vbUpperCase 1 Преобразование строки к верхнему регистру
    vbLowerCase 2 Преобразование строки к нижнему регистру
    vbProperCase 3 Преобразование первой буквы каждого слова в строке в прописную
    vbWide 4 Преобразование однобайтовых символов в двухбайтовые. Применимо только к дальневосточным национальным настройкам
    vbNarrow 8 Преобразование двухбайтовых символов в однобайтовые. Применимо только к дальневосточным национальным настройкам
    vbHiragana 32 Преобразование символов катаканы в символы хираганы. Применимо только к японскому языку
    vbUnicode 64 Преобразование строки в Unicode с помощью используемой по умолчанию системной кодовой страницы
    vbFromUnicode 128 Преобразование строки из Unicode с помощью используемой по умолчанию системной кодовой страницы

    Константы можно складывать, только если они не являются взаимно обратными

    Ниже перечислены допустимые символы, служащие разделителями слов: Null (Chr$(0)), горизонтальная табуляция (Chr$(9)), перевод строки (Chr$(10)), вертикальная табуляция (Chr$(11)), конец страницы (Chr$(12)), возврат каретки (Chr$(13)), пробел (однобайтовая система) (Chr$(32)). Код пробела в двухбайтовых системах (DBCS) зависит от текущей страны

    Пример

    Sub StringConversion_example()
    Dim Str As String
     Str = "мир ms excel"
     MsgBox StrConv(Str, vbProperCase) 'Преобразуем первые буквы каждого слова строки в верхний регистр
    End Sub

    Категория
    Функции обработки строк

    Понравилась статья? Поделить с друзьями:
  • Excel vba кнопка на запуск макроса
  • Excel vba клик мыши
  • Excel vba квадратные скобки
  • Excel vba календарь для формы
  • Excel vba какой лист активный