Книга: VBA для чайников
Информацию - в строку
Информацию - в строку
Поскольку VBA с такой легкостью конвертирует данные одних типов в другие, строковые переменные оказываются нужными значительно реже, чем это может показаться на первый взгляд. Если единственной задачей является отображение нестрокового значения в виде, понятном обычному человеку, то для этого совсем не обязательно конвертировать такое значение в строковое. Лучше просто использовать данное числовое значение или дату- или даже значение типа Variant - в качестве аргумента некоторой функции или значения свойства объекта, для которых данный аргумент или значение должны быть строковыми.
В следующем примере используется сверхпопулярная функция MsgBox, отображающая данные строкового типа в небольшом диалоговом окне. В результате выполнения операторов
Dim dateЭтоНеСтрока As Date
dateЭтоНеСтрока = #17:23:16#
MsgBox dateЭтоНеСтрока
на экране отображается сообщение, подобное показанному на рис. 7.1.
Рис. 7.1. Показанный в окне сообщения текст не преобразовался в строку явно
И&Ш.
А теперь взгляните на следующую ересь:
Dim intSmall As Integer, sngTall As Single
Dim varYouAll As Variant
intSmal l = 3
sngTall = 9.99E+33
varYouAll = intSmall & sngTall
В результате выполнения этого фрагмента программного кода varYouAll будет содержать "39.99Е+33". Присутствие в последнем операторе знака конкатенации (&) заставляет VBA конвертировать оба числовых значения в строковые, чтобы суметь выполнить эту конкатенацию.
Для чего строковые переменные действительно необходимы, так это для работы с нечисловыми символами, т.е. с буквами и знаками пунктуации. Их-то уж из числовых значений так просто не получить.
Из практики надежного программирования вытекает необходимость явного конвертирования числовых значений в строки, если требуется манипулировать ими как строками. Это уменьшает вероятность появления ошибок и делает программный код понятнее. И все же не мешает знать, что существует возможность вывода значений переменных, не требующая лишних усилий для их предварительной подготовки.
По той же причине не обязательно использовать кавычки, когда строковой переменной (т.е. переменной, объявленной как переменная типа String ) присваивается дата, числовое или денежное значение. Как заботливая нянька, VBA конвертирует такие значения в строки безо всяких вопросов и нареканий. Так, в результате выполнения операторов
Dim strGSting As String
strGSting = #July 22, 1904#
переменная будет содержать строку "22.07.1904", пока какой-нибудь другой оператор не изменит ее. А теперь можете смеяться надо мной, но я рекомендовал бы использовать кавычки просто для того, чтобы быть уверенными, что ваша переменная содержит именно то, что вы собирались в нее поместить.
Функции VBA Asс и Chr конвертируют ANSI-символы в соответствующие им числовые коды и наоборот. С помощью функции Chr в строку можно поместить символы, которые в ней нельзя напечатать (например, кавычки). Функция Asс возвращает числовой код первого символа в строке.
- Как выделить строку, столбец и ячейки
- Где я могу найти информацию для дальнейшего обучения?
- Как искать информацию в Интернете?
- Как получить исчерпывающую информацию о драйверах, установленных в системе?
- Можно ли сделать командную строку цветной (как в фильме «Матрица»)?
- Как найти информацию в Интернете?
- Как структурировать информацию по библиотеке с помощью майнд-менеджмента
- 2.21. Включение выражений в строку
- Как использовать информацию из Интернета для поддержки маркетинговых исследований, повышения клиентоориентированности ко...
- Как искать в Интернете информацию о конкретных людях
- Как искать информацию о компаниях
- Как искать информацию о продуктах конкурента