Remkomplekty.ru

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

Vba excel cstr

Урок 16 по VBA — функции для работы с типами данных

Описанные ниже функции позволяют преобразовать переданный параметр, который может быть или числом или строкой к заданному типу данных vba. Отличительная особенность данных функций vba преобразования типов от остальных – префикс C (от слова Convert), после которого следует краткое имя типа данных, к которому происходит преобразование (например, Bool – Boolean, Cur – Currency, и так далее).

CBool (par) – Преобразование к типу Boolean. Если параметр par будет отличаться от 0, то функция вернет значение true, в противном случае – false.

CByte (par) – Преобразование к типу Byte. Параметр par должен содержать числовое значение или строку, которые являются числом без знака в диапазоне значений от 0 до 255. Условия преобразования:

  • Если значение дробной части меньше 0.5, то она будет отброшена. В случае, если дробная часть больше 0.5 – к целой части добавится единица. Если же дробная часть ровна 0.5, то произойдет округление до ближайшего четного числа.
  • Если переданный параметр является строкой, то он должен содержать только цифры, в противном случае произойдет генерация ошибки.
  • В случае, если параметр содержит отрицательное число или число, которое больше 255, то также произойдет генерация ошибки. (vba преобразование типов)

CCur (par) – Преобразование к типу vba Currency. Передаваемый параметр должен содержать значение в диапазоне от -922 337 203 685 477.5808 до 922 337 203 685 477.5807.

  • Если параметр содержит дробное число, содержащее больше 4 знаков в дробной части, то функция округляет его до четырех десятичных знаков.
  • Если параметр не входит в допустимый диапазон, то произойдет генерация ошибки.

CDate (par) – Преобразует переданный параметр vba в тип дата.

CDbl (par) – Преобразование к типу vba Double. Переданный параметр должен содержать любое числовое значение или строку, которые входят в диапазон от -1.79769313486232E308 до -4.94065645841247E-324 для отрицательных значений, и от 4.94065645841247E-324 до 1.79769313486232E308 для положительных значений.

  • Если значение переданного параметра не попадает в допустимый диапазон, то произойдет ошибка. (vba преобразование типов)
  • Если параметр является строкой, содержащей не только цифры, то произойдет ошибка.

CDec (par) – Преобразование к типу vba Decimal. Параметр должен содержать любое числовое или строковое значение, входящее в диапазон представляющий целое число в диапазоне +/-79 228 162 514 264 337 593 543 950 335 или смешанное с не более чем 28 цифрами в дробной части в диапазоне +/-7.9228162514264337593543950335. Минимальным возможным ненулевым числом является 0.0000000000000000000000000001.

  • Если значение параметра не входит в допустимый диапазон – произойдет генерация сообщения об ошибке.
  • Если передаваемый параметр является строкой и содержит не только цифры, то произойдет генерация ошибки.

CInt (par) – Преобразование к типу vba Integer. Передаваемый параметр должен входить в диапазон чисел от -32768 до 32767.

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

CLng (par) – Преобразование к типу vba Long, допустимы диапазон передаваемого параметра числа от -2147483648 до 2147483647.

  • Если значение параметра не входит в допустимый диапазон – произойдет генерация сообщения об ошибке.
  • Если передаваемый параметр является строкой и содержит не только цифры, то произойдет генерация ошибки.
  • Если передаваемый параметр содержит дробную часть, которая равна 0.5, то произойдет округление до ближайшего четного числа.

CSng (par) – Преобразование к типу vba Single. Допустимый диапазон — число от -3.402823E8 до -1.401298E-45 для отрицательных значений и от 1.401298E-45 до 3.402823E8 для положительных значений.

  • Если передаваемый параметр содержит значение, которое меньше минимального допустимого значения, то функция вернет значение 0.
  • Если параметр содержит значение, которое превышает максимально допустимое, то произойдет генерация ошибки. (vba преобразование типов)
  • Если передаваемый параметр является строкой и содержит не только цифры, то произойдет генерация ошибки.
  • Если число знаков дробной части в параметре выходит за пределы допустимого диапазона, то функция усекает ее (дробную часть).

CStr (par) – Преобразует переданный параметр в строковое значение.

Str (par) — Аналогично функции CStr, но перед положительными числами вставляется пробел.

CVar (par) – Преобразует переданы параметр в тип vba Varint.

CVDate (par) – Фактически, функция аналогична CDate, и используется только для совместимости.

Val (par) — Извлекает из переданного параметра только цифры.

TypeName (par) – Функция возвращает имя типа данных vba, для переданного параметра.

Следующие функции преобразования vba возвращают логические значения true или false, и предназначены для проверки переданного параметра на конкретный тип данных.

IsNumeric (par) — Число

IsDate (par) — Дата

IsArray (par) — Массив

IsEmpty (par) – Тип Empty

IsError (par) — Ошибка

IsMissing (par) – Необязательный параметр, переданный в процедуру

IsNull (par) – Пустое значение

IsObject (par) — Объект

Для преобразования числового значения к восьмеричному или шестнадцатеричному виду, применяются следующие функции:

Hex (par) – Шестнадцатеричный вид.

Oct (par) – Восьмеричный вид.

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

&O – Буква O говорит, что мы хотим прописать восьмеричное значение, которое следует после символа O.

Читать еще:  Линейная интерполяция excel vba

&HA — Буква H говорит, что мы хотим прописать шестнадцатеричное значение, которое следует после символа H.

Так как большая часть приведенных функций используется и в языке VBScript, то примеры с ними можно посмотреть в статьях «Урок 4 по VBScript: преобразование типов данных» и «Урок 10 по VBScript: Функции — математические и для работы с подтипами данных».

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

Use VBA CStr to Convert Number to String

The VBA Tutorials Blog

Introduction — CStr

Learn how to use the VBA CStr function to convert a number to a string. CStr can also be used to convert a date to a string using VBA.

This is Part 2 of a new tutorial series showing you how to convert between VBA data types.
Part 1: Convert string to integer
Part 3: Convert string to date

Example — CStr

Convert a Number to a String

Make powerful macros with our free VBA Developer Kit

It’s easy to copy and paste a macro like this, but it’s harder make one on your own. To help you make macros like this, we built a free VBA Developer Kit full of pre-built macros so you can master file I/O, arrays, strings and more — grab a copy below.

Tutorial — CStr

The ConvertToString function does all the work in this VBA macro. Simply call the function and pass it an expression or data type, such as a boolean, a double, an integer or a date. In my CStr example, str1 = ConvertToString( dPrice ) , calls the function by passing it a variable with a Double data type, dPrice .

I chose to pass a variable directly to the ConvertToString function, but you could also pass a value stored in a cell. For example, str1 = ConvertToString( Range(«A1») ) is allowed, as well.

If the conversion to a string succeeds, your value will be stored in str1 as a string, as illustrated by the following Watch window.


Successful conversion from double to string

If the conversion fails, a message box will appear letting you know it failed and your macro execution will abort. CStr accepts most expressions so, unlike CInt, there are very few ways to cause CStr to fail. With that said, one surefire way to make it fail is to apply CStr to an array. This will cause a “Type mismatch” error.

VBA Convert Date to String

The VBA CStr Function can do more than just convert numbers to strings. It can also convert dates to strings so you can manipulate them with string manipulation functions (Mid, strConv, Split, InStr, UCase, etc.). Note: Many string manipulation functions can be used on dates even without converting them to strings.

Notice that although the variable dChristmas was written in Long Date format with 24-hour time, the post-conversion is stored in Short Date format with 12-hour time. This is based on the default format specified via your run-time locale.

Have no fear! You can force the string to be stored in whatever format you like using the Format function. For example, change the call statement to

and the resulting string will be stored in a new date format!

Application Ideas — CStr

If your familiar with wellsr.com articles, you’ll recall several tutorials where I reference the CStr function. Many native VBA functions require string inputs, so you’ll regularly find yourself needing to convert numbers to strings. One such function is the VBA shell function. In order to close an open application, you’ll need to convert the process ID to a string.

You now now how to convert numbers to strings and dates to strings using VBA, but don’t stop there! Play around by converting other data types to string, including booleans.

The CStr Function is the second featured VBA data type conversion in this series. Read more data type conversion articles by visiting

Our subscribers love getting VBA tips, techniques and tactics like this in their inbox. To see why, subscribe using the form below.

Oh, and if you have a question, post it in our VBA Q&A community.

The best free VBA training on the web
I see people struggling with Excel every day and I want to help. That’s why I’m giving away my 90-days to Master VBA eCourse and my entire personal macro library for free.

Over 2 million people use our VBA tutorials each year to help automate their work. Are you ready to reclaim your time, too? Grab our VBA Cheat Sheets and you’ll be writing macros like a professional. With over 180 tips and 135 macro examples, they include everything you need to know to become a great VBA programmer.

Краткие описания основных функций и команд VB

Это кpаткий спpавочник по опеpатоpам VB.

* Фоpмат спpавочника: «опеpатоp» — «зачем нyжен».
* Цель создания: на пеpвых поpах (да и потом тоже 😉 ) не знаешь или не помнишь название опеpатоpа или фyнкции, котоpая делает то, что тебе тpебyется. То есть в хелп pад бы заглянyть, да не знаешь, что искать.
* Использование: yзнал, как называется нyжная фyнкция или пpоцедypа, дальше спокойно лезешь в хелп.
* Пpимечания: ничего специфического данное твоpение не содеpжит — пpактически ничего, связанного с базами данных, SQL, API там нет, посколькy пpедназначено это все для начинающих.
* Источник: содpано с оглавления от книжки по VB3.0-VB4.0 — автоp Х. Аpyшанов. Все пpименимо и для VB5.0 и 6.0.

Читать еще:  Приоритет операторов в excel

* Abs (функция) — возвращает абсолютное значение числа
* And (операция) — логическое И
* AppActivate (оператор) — активизирует окно приложения
* Array (функция) — создает массив из параметров и возвращает его какпеременную типа Variant
* Asc (функция) — возвращает числовой код первого символа строки аргумента
* AscB(функция) — Возвращает значение типа Integer, которое указывает код знака, соответствующий первой букве строки
* AscW(функция) — возвращает числовой код первого Unicode символа строки аргумента
* Atn (функция) — возвращает арктангенс числа в радианах
* Веер (оператор) — проигрывает звуковой сигнал через динамик компьютера
* Call (оператор) — передает управление процедуре модуля (Sub), функциимодуля (Function) или подпрограмме DLL
* CBool (функция) — приводит выражение к типу Boolean
* CByte (функция) — преобразует выражение к типу Byte
* ССur (функция) — преобразование выражения к типу Currency
* CDate (функция) — преобразование выражения к типу Date
* CDbl (функция) — преобразование к типу Double
* ChDir (оператор) — изменяет текущий каталог на устройстве
* ChDrive (оператор) — изменяет текущее устройство
* Choose (функция) — возвращает значение из списка аргументов с определеннымпорядковым номером
* Chr (функция) — возвращает символ, связанный с определенным числовымкодом
* CInt (функция) — преобразование выражения к типу Integer
* CLng (функция) — преобразование выражения к типу Long
* Close (оператор) — закрывает файл, открытый оператором Open
* Command (функция) — возвращает командную строку, используемую длязапуска Visual Basic или приложения на Visual Basic
* Const (оператор) — объявления констант
* Cos (функция) — возвращает косинус числа
* Create Object (функция) — создать OLE Automation объект
* CSng (функция) — преобразование выражения к типу Single
* CStr (функция) — преобразование выражения к типу String
* CurDir (функция) — возвращает текущий каталог логического устройства
* CVar (функция) — преобразование выражения к типу Variant
* CVErr (функция) — возвращает подтип ошибки, для определенного пользователемномера ошибки
* Date (оператор) — устанавливает значение системной даты
* Date (функция) — возвращает значение системной даты
* DateAdd (функция) — возвращает переменную типа Variant, содержащуюдату, отличающуюся от заданной на определенный интервал времени
* DateDiff (функция) — возвращает число временных интервалов между двумядатами
* DatePart (функция) — возвращает определенную часть заданной даты
* DateSerial (функция) — возвращает дату для заданного года, месяцаи дня
* DateValue (функция) — возвращает дату
* Day (функция) — возвращает число от 1 до 31, соответствующее текущемудню месяца
* DDB (функция) — возвращает значение амортизационных потерь за определенныйпериод
* Declare (оператор) — на уровне модуля объявляет ссылки ко внешним подпрограммамв DLL
* Deftype (операторы) — устанавливает тип данных по умолчанию на уровнемодуля для переменных, параметров подпрограмм, а также возвращаемыхзначений для функций и операторов Property Get, начинающихся с определенныхсимволов
* Dim (оператор) — объявляет переменные и выделяет память под них
* Dir (функция) — возвращает имя файла или каталог, подходящий дляданного шаблона или атрибута файла, или метку тома устройства
* DoEvents (функция) — прерывает выполнение приложения
* Do. Loop (оператор) — повторяет блок команд до тех пор, пока условиеверно или до тех пор, пока условие не станет верным
* End (оператор) — заканчивает подпрограмму или блок команд
* Environ (функция) —

Функции преобразования типа

Каждая функция приводит выражение к определенному тип данных.

Обязательный аргумент выражениеАргумент — это любое строковое выражение или числовое выражение.

Тип возвращаемого значения определяется по имени функции в соответствии со следующей таблицей:

Тип возвращаемого значения

Диапазон аргумента выражение

Любое допустимое строковое или числовое выражение.

От -922 337 203 685 477,5808 до 922 337 203 685 477,5807.

Любое допустимое выражение даты.

От -1,79769313486231E308 до
-4,94065645841247E-324 для отрицательных значений и от 4,94065645841247E-324 до 1,79769313486232E308 для положительных.

+/-79 228 162 514 264 337 593 543 950 335 для чисел без дробной части. Для чисел с 28 десятичными знаками допустимый диапазон составляет
+/-7,9228162514264337593543950335. Наименьшее допустимое ненулевое число — 0,0000000000000000000000000001.

От -32 768 до 32 767, дробная часть округляется.

От -2 147 483 648 до 2 147 483 647, дробная часть округляется.

От -3,402823E38 до -1,401298E-45 для отрицательных значений и от 1,401298E-45 до 3,402823E38 для положительных.

Результат, возвращаемый функцией CStr, зависит от аргумента выражение.

Тот же диапазон, что и Double для чисел. Тот же диапазон, что и в качестве строки для нечисловых значений.

Если передаваемое функции выражение находится за пределами диапазона типа данных, в который оно преобразуется, возникает ошибка.

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

Функции преобразования типа данных следует использовать вместо функции Val для преобразования типов данных в приложениях, поддерживающих различные региональные стандарты. Например, при использовании функции CCur десятичные разделители, разделители групп разрядов и параметры денежных единиц распознаются в соответствии с языковыми и региональными параметрами компьютера.

Читать еще:  Vba excel len

Если дробная часть целого числа строго равна 0,5, функции CInt и CLng всегда округляют результат до ближайшего четного числа. Например, 0,5 округляется до 0, а 1,5 — до 2. В отличие от функций CInt и CLng, в функциях Fix и Int дробная часть не округляется, а отбрасывается. Кроме того, функции Fix и Int всегда возвращают значение того же типа, что и переданное им выражение.

Для определения возможности преобразования даты в дату или время используется функция IsDate. Функция CDate распознает литералы даты и времени, а также некоторые числа, которые находятся в диапазоне допустимых дат. При преобразовании числа в дату преобразуется целая часть числа. Дробная часть преобразуется во время суток, начиная с полуночи.

Функция CDate распознает форматы даты в соответствии с параметрами языковые стандарты системы. Правильное определение дня, месяца и года может быть недоступно, если оно предоставляется в формате, отличном от одного из распознаваемых параметров даты. Кроме того, не удается распознать длинный формат даты, если он содержит строку дня недели.

Функция CVDate предназначена для обеспечения совместимости с предыдущими версиями Visual Basic. Синтаксис функции CVDate идентичен синтаксису функции CDate, однако функция CVDate возвращает не результат типа Date, а результат типа Variant с подтипом Date. Поскольку теперь реализован встроенный тип Date, необходимость в функции CVDate отпадает. Того же результата можно добиться, преобразовав выражение в тип Date и присвоив это значение переменной типа Variant. Этот способ позволяет преобразовать все прочие встроенные типы в эквивалентные им подтипы Variant.

Примечание: Функция CDec не возвращает отдельный тип данных. Вместо этого она всегда возвращает результат типа Variant, значение которого преобразовано в подтип Decimal.

Функции 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().
  • Ссылка на основную публикацию
    Adblock
    detector