If you want to make a tabulation for a message box or to write in a file.
To write in a file:
> 'file
> Dim FSO As New FileSystemObject 'FSO
> Dim File_DBC 'file to write
>
> File_DBC="" 'complete path
>
> Set File_DBC = FSO.OpenTextFile(File_DBC, ForWriting, True,TristateUseDefault) 'open
> Data File_DBC.WriteLine 'test'
asked Jun 3, 2015 at 7:43
You have to use vbTab
MsgBox «blabla» + vbTab + «blabla»
You can also use: Chr(9)
which directly correspond to the tabulation char in the ASCII table.
I.E. : «reverse» of Chr()
is Asc()
R3uK
14.4k7 gold badges43 silver badges77 bronze badges
answered Jun 3, 2015 at 7:43
WhiteWhite
1111 silver badge8 bronze badges
Главная » Функции VBA »
28 Апрель 2011 351425 просмотров
- 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().
Статья помогла? Сделай твит, поделись ссылкой с друзьями!
In this article, we have created two macros to understand the formatting of tab character within VBA.
We have taken data in the range A9:A11 as raw data.
In example 1, we have created a string in which we have consolidated data from cells within the range A9:A11, separated by tab characters (vbTab). When we display the string using a message box, we will be able to see tab spacing.
However, when we insert string value in cell A14, tab spacing is not visible. We have used some Excel formulas to show tab characters exist between the words.
In example 2, we have separated each character in the string value of cell A14 and we have used new line character (vbNewLine) to insert line breaks. Output of example 2 is also displayed using a message box.
Please follow below for the code
Option Explicit Sub example1() 'Declaring variable Dim MainString As String 'Concatenating value from range A9 to A11 separated by Tab character MainString = Range("A9").Value & vbTab & Range("A10").Value & vbTab & Range("A11").Value 'Display string in message box MsgBox MainString 'Assigning value to cell A14 Range("A14").Value = MainString End Sub Sub example2() 'Declaring variables Dim i, CharLength As Integer Dim Output As String Dim InputValue As String 'Getting input value from cell A14 InputValue = Range("A14").Value CharLength = Len(InputValue) 'Looping through all the characters in the input value For i = 1 To CharLength 'Creating string in which each character in the input is separated by new line Output = Output & Asc(Mid(InputValue, i, 1)) & " " & Mid(InputValue, i, 1) & vbNewLine Next i 'Displaying output using message box MsgBox Output End Sub
If you liked this blog, share it with your friends on Facebook. Also, you can follow us on Twitter and Facebook.
We would love to hear from you, do let us know how we can improve our work and make it better for you. Write to us at info@exceltip.com
-
08-09-2005, 11:05 PM
#1
How to specify a tab character in excel vba…
Hi all,
I am trying to use Chip Pearson’s code for extracting text files.
This is the link for it
http://www.cpearson.com/excel/imptext.htm
I like this code very much. It will allow you to specify any delimiter
character. However, I don’t know how to specify a tab character in vba.
I tried «t» like in unix, perl etc. No luck. So could you please tell
me how can I specify a tab character in vba.
Thanks in advance,shishi
-
08-09-2005, 11:05 PM
#2
Re: How to specify a tab character in excel vba…
Hi Shishi,
Try vbTab or chr(9).
—
Regards,
Norman«shishi» <shishiram@gmail.com> wrote in message
news:1123640781.754959.280280@o13g2000cwo.googlegroups.com…
> Hi all,
>
> I am trying to use Chip Pearson’s code for extracting text files.
> This is the link for it
> http://www.cpearson.com/excel/imptext.htm
> I like this code very much. It will allow you to specify any delimiter
> character. However, I don’t know how to specify a tab character in vba.
> I tried «t» like in unix, perl etc. No luck. So could you please tell
> me how can I specify a tab character in vba.
> Thanks in advance,
>
> shishi
>
-
08-10-2005, 12:05 AM
#3
Re: How to specify a tab character in excel vba…
Hi Norman,
Thanks for yoiur reply. That did work.
shishi
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]