Тип данных строки VBA (тусклая переменная)

Тип строковой переменной

Тип данных String - один из наиболее распространенных типов данных в VBA. Он хранит «строки» текста.

Чтобы объявить переменную String, вы используете оператор Dim (сокращение от Dimension):

1 Dim strName as String

Чтобы присвоить значение переменной, вы используете знак равенства:

1 strName = "Фред Смит"

Ввод этого в процедуру выглядит так:

12345678 Sub strExample ()'объявить строкуDim strName как строка'заполнить строкуstrName = "Фред Смит"'показать окно сообщенияMsgBox strnameКонец подписки

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

Фиксированная строковая переменная

На самом деле есть 2 типа строковых переменных - фиксированные и переменные.

Строковая переменная «переменная» (показанная в предыдущем примере) позволяет вашей строке иметь любую длину. Это чаще всего.

«Фиксированная» строковая переменная определяет размер строки. Фиксированная строка может содержать до 65 400 символов.

1 Dim strName как строка * 20

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

Обратите внимание на пробелы на рисунке ниже - переменная имеет заполнители для остальных символов в строке, так как «Фред Смит» меньше 20 символов.

Однако, если вы объявили строку без указания длины, тогда строка будет содержать столько символов, сколько ей передано.

Объявление строковой переменной на модульном или глобальном уровне

В предыдущем примере вы объявили переменную String внутри процедуры. Переменные, объявленные с помощью процедуры, могут использоваться только внутри этой процедуры.

Вместо этого вы можете объявить строковые переменные на уровне модуля или на глобальном уровне.

Уровень модуля

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

Эти переменные можно использовать с любой процедурой в этом модуле кода.

Глобальный уровень

Глобальный уровень переменные также объявляются в верхней части модулей кода. Однако вместо использования Тусклый заявление, вы используете Общественные , чтобы указать, что строковая переменная доступна для использования в вашем проекте VBA.

1 Public strName as String

Если вы объявили строковую переменную на уровне модуля и использовали ее в другом модуле, возникла бы ошибка.

Однако, если вы используете ключевое слово Public для объявления строковой переменной, ошибки не произойдет, и процедура будет работать безупречно.

Преобразование значений, хранящихся в виде строки

Может быть время, когда у вас есть значения в Excel, которые хранятся в виде текста - например, вы могли импортировать файл CSV, который мог содержать текст вместо чисел.

Обратите внимание, что значение в A1 выровнено по левому краю, что указывает на текстовое значение.

Вы можете использовать Функция VBA можно использовать для преобразования этих чисел в текст

12345678 Sub ConvertValue ()'заполнить строкуstrQty = Диапазон ("A1")'заполняем двойник строкойdblQty = strQty'заполняем диапазон числомДиапазон ("A1") = dblQtyКонец подписки

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

Это особенно полезно, когда вы перебираете большой диапазон ячеек.

123456789101112131415 Sub ConvertValue ()Dim strQty как строка, dblQty как DoubleDim rw как целое число, i как целое'подсчитать строки для преобразованияrw = Диапазон ("A1", Диапазон ("A1"). Конец (xlDown)). Rows.Count'прокручиваем ячейки и преобразуем каждую в числоДля i = 0 To rw - 1'заполнить строкуstrQty = Диапазон ("A1"). Смещение (i, 0)'заполняем двойник строкойdblQty = strQty'заполняем диапазон числомДиапазон ("A1"). Смещение (i, 0) = dblQtyДалее яКонец подписки

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

Устали искать примеры кода VBA? Попробуйте AutoMacro!

Преобразование строки, хранящейся как значения

Точно так же могут быть значения, которые вам нужно преобразовать из строки в значение - например, если вам нужен начальный ноль в телефонном номере.

123456789101112131415 Sub ConvertString ()Dim strPhone As String, dblPhone As DoubleDim rw как целое число, i как целое'подсчитать строки для преобразованияrw = Диапазон ("A1", Диапазон ("A1"). Конец (xlDown)). Rows.Count'прокручиваем ячейки и преобразуем каждую в числоДля i = 0 To rw - 1'заполнить строкуdblPhone = Range ("A1"). Offset (i, 0)'заполняем двойник строкойstrPhone = "'0" & dblPhone'заполняем диапазон числомДиапазон ("A1"). Смещение (i, 0) = strphoneДалее яКонец подписки

Обратите внимание, что вам нужно начинать текстовую строку с апострофа (‘) перед нулем, чтобы Excel мог ввести значение как строку.

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave