Тип даних рядка VBA (змінна зі зменшенням)

Тип змінної рядка

Тип даних String - один з найпоширеніших типів даних у VBA. Він зберігає "рядки" тексту.

Щоб оголосити змінну String змінною, ви використовуєте оператор Dim (скорочення від Dimension):

1 Dim strName як String

Щоб призначити змінній значення, ви використовуєте знак рівності:

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

Введення цього в процедуру виглядає так:

12345678 Sub strExample ()'оголосити рядокЗатемнити strName як рядок'заповнити рядокstrName = "Фред Сміт"'показати вікно повідомленьMsgBox strnameEnd Sub

Якщо ви запустите код вище, відобразиться таке вікно повідомлення.

Виправлена ​​змінна рядка

Насправді існує 2 типи рядкових змінних - фіксована та змінна.

"Змінна" рядкова змінна (показана в попередньому прикладі) дозволяє вашому рядку мати будь -яку довжину. Це найчастіше.

"Фіксована" змінна рядка визначає розмір рядка. Фіксований рядок може містити до 65 400 символів.

1 Затемнити strName як рядок *20

Коли ви визначаєте фіксовану змінну, кількість символів у змінній фіксується на місці, навіть якщо ви використовуєте менше символів.

Зверніть увагу на пробіли на графіку нижче - змінна має власники решти символів у рядку, оскільки "Фред Сміт" містить менше 20 символів.

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

Оголошення змінної рядка на модульному або глобальному рівні

У попередньому прикладі ви оголошували змінну String у процедурі. Змінні, оголошені процедурою, можна використовувати лише в рамках цієї процедури.

Замість цього ви можете оголосити змінні String на модульному або глобальному рівні.

Рівень модуля

Рівень модуля змінні оголошуються у верхній частині модулів коду за допомогою Dim заяву.

Ці змінні можна використовувати з будь -якою процедурою в цьому модулі коду.

Глобальний рівень

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

1 Загальнодоступне strName як String

Якщо ви оголосили рядкову змінну на рівні модуля та використовувались у іншому модулі, то станеться помилка.

Однак, якщо ви використовуєте ключове слово Public для оголошення рядкової змінної, помилка не відбудеться, і процедура працюватиме ідеально.

Перетворення значень, збережених як рядок

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

Зверніть увагу, що значення в A1 вирівнюється за лівим краєм, що вказує на текстове значення.

Ви можете використовувати a Функція VBA можна використовувати для перетворення цих чисел у текст

12345678 Sub ConvertValue ()'заповнити рядокstrQty = Діапазон ("A1")'заповнити подвійне рядкомdblQty = strQty'заповніть діапазон номеромДіапазон ("A1") = dblQtyEnd Sub

Як тільки ви запустите код, номер переміститься праворуч, що вказує на те, що він зараз зберігається як число.

Це особливо корисно, коли ви перебираєте великий діапазон комірок.

123456789101112131415 Sub ConvertValue ()Dim strQty як рядок, dblQty як подвійнийDim rw As Integer, i As Integer'порахуйте рядки для конвертаціїrw = Діапазон ("A1", Діапазон ("A1"). Кінець (xlDown)). Rows.Count'прокручують комірки і перетворюють кожне з них у числоДля i = 0 Для rw - 1'заповнити рядокstrQty = Діапазон ("A1"). Зсув (i, 0)'заповнити подвійне рядкомdblQty = strQty'заповніть діапазон номеромДіапазон ("A1"). Зсув (i, 0) = dblQtyДалі iEnd Sub

В результаті всі клітинки потім перетворюються на числа

Втомилися від пошуку прикладів коду VBA? Спробуйте AutoMacro!

Перетворити рядок, що зберігається як значення

Подібним чином можуть існувати значення, які вам потрібно перетворити з рядка у значення - наприклад, якщо вам потрібен початковий нуль у телефонному номері.

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

Зауважте, що вам потрібно починати текстовий рядок з апострофа (‘) перед нулем, щоб повідомити Excel ввести значення як рядок.

wave wave wave wave wave