Все, что вам нужно знать о переменных vba

Переменная VBA

В VBA переменная похожа на ящик для хранения, который сам хранится в вашей системе, но он может хранить там значение для вас, и вы можете использовать это значение в своем коде и изменять это значение, если хотите (как следует из названия: «ПЕРЕМЕННАЯ » — это то, чья ценность не фиксирована).

Чтобы объявить переменную, необходимо выполнить простую процедуру:

  1. Используйте ключевое слово «Dim» в начале.
  2. Укажите имя переменной.
  3. Используйте ключевое слово «As» после имени.
  4. Укажите «Тип данных» переменной в зависимости от значения, которое вы хотите ей присвоить.

Здесь мы использовали имя «startDate» и указали тип данных «Дата». После объявления переменной вы можете присвоить ей значение.

 Dim startDate As Date startDate = “11/10/2018”

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

Типы данных

В VBA типы данных — это, по сути, типы данных, которые необходимо указать при сохранении значения в переменной или константе. Например, если вы хотите сохранить дату в переменной, вы должны сначала объявить эту переменную даты в качестве ее типа данных.

Объяснение типов данных

Вот полный список типов данных, которые вы можете использовать в VBA.

Тип данных
Использовано байтов
Диапазон значений
Байты
1 байт
от 0 до 255
логическое значение
2 байта
Правда или ложь
Весь
2 байта
от -32,768 до 32,767
Длинный (целочисленный длинный)
4 байта
от -2 147 483 648 до 2 147 483 647
Один
4 байта
от -3,402823E38 до -1,401298E-45 для отрицательных значений; От 1.401298E-45 до 3.402823E38 для положительных значений.
Двойной
8 байт
от -1,79769313486231E308 до -4,94065645841247E-324 для отрицательных значений; От 4.94065645841247E-324 до 1.79769313486232E308 для положительных значений.
Наличные
8 байт
от -922 337 203 685 477,5808 до 922 337 203 685 477,5807
Десятичная дробь
14 байт
+/-79 228 162 514 264 337 593 543 950 335 без десятичной точки; +/-7,9228162514264337593543950335 с 28 десятичными знаками справа от десятичной точки
Дата
8 байт
с 1 января 100 г. по 31 декабря 9999 г.
Объект
4 байта
Любая ссылка на объект
Цепочка (переменная длина)
10 байт + длина строки
от 0 до примерно 2 миллиардов
Цепочка (фиксированная длина)
Длина цепи
от 1 до примерно 65 400
Вариант (с цифрами)
16 байт
Любое числовое значение до диапазона Double
Вариант (с персонажами)
22 байта + длина строки
Тот же диапазон, что и у строки переменной длины.
Определяемые пользователем
Различный
Диапазон каждого элемента такой же, как диапазон его типа данных.

Это настоятельно рекомендуется для объявления типа данных для переменных и констант .

Когда вы указываете тип данных для переменной или константы, это гарантирует достоверность ваших данных и предотвращает ввод недопустимого типа данных. Если вы опустите тип данных, VBA применит к вашей переменной тип данных Variant — это наиболее гибкий вариант, и VBA не угадает, каким должен быть тип данных.

Совет. Лучший способ не пропустить указание типов данных — использовать явную опцию в самом верху модуля перед запуском любого кода.

Явно или неявно

Вы можете объявить переменную явно или неявно. Явное объявление означает, что перед присвоением значения переменной вы объявляете ее и устанавливаете ее значение. ПРЕИМУЩЕСТВО этого заключается в том, что вы определяете его и его тип данных, VBA всегда сохраняет данные в этом формате.

Вот пример:

 Dim myDate As Date

Поэтому, когда вы сохраняете значение в этом VBA, он всегда будет применять к нему формат даты. Но при неявном объявлении вам не нужно беспокоиться об этом явном объявлении. Вместо этого вы устанавливаете значение переменной и используете его в операторе кода. В неявном объявлении VBA сохраняет данные в переменной типа Variant, поскольку вы не указали тип.

Другими словами, если вы просто используете переменную в своем коде, не объявляя ее, это неявно. Ниже приведен пример неявного объявления:

 myDate = “11/10/1990”

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

Статическая переменная

Ну, я говорил вам, что переменная — это то, значение которой можно изменить, но это нечто другое. При использовании обычной переменной после завершения процедуры значение, хранящееся в переменной, будет удалено из памяти VBA, но если вы не хотите потерять это значение, вы можете сделать эту переменную статической.

Чтобы сделать переменную статической и сохранить значение, просто используйте ключевое слово «Static» вместо «Dim».

Назовите переменную

Вы можете назвать переменную (эти правила также применимы к имени константы и процедуры) как угодно, но вы должны следовать нескольким правилам:

  • Вы можете использовать алфавиты, цифры и некоторые знаки препинания, но первый символ имени должен быть алфавитом.
  • Пробелы и точки не являются допустимыми символами для использования в имени, но вы можете использовать подчеркивание, чтобы имя было читабельным.
  • В имени нельзя использовать специальные символы.
  • Длина имени может составлять 254 символа, но использование имени не имеет смысла.
  • Существует множество зарезервированных слов, которые нельзя использовать для имени. Если вы попытаетесь использовать любое из этих слов, вы получите сообщение об ошибке.
  • VBA не различает случаи.

Объем

На этом этапе вы знаете процедуры и то, какая процедура полезна в какой ситуации, вы также узнаете о переменных и о том, как определять их типы данных.

Следующая важная вещь — понять область действия, что означает доступность. Вот где его можно использовать. Когда вы определяете переменную, область действия определяет, можете ли вы использовать ее вне основной процедуры или нет. Существует три способа определения областей видимости переменных (постоянных и даже для всей процедуры).

  1. Уровень процедуры: вы можете использовать переменную только в той же процедуре, где вы ее объявляете.
  2. Уровень модуля (частный): делает переменную доступной для всех процедур в модуле.
  3. Уровень модуля (общедоступный): делает переменную доступной для всех процедур во всех модулях.

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

Но позвольте мне поделиться с вами кое-чем из реального мира.

Я работаю в коворкинге и сижу на первом этаже трехэтажного здания. Я сижу на одном и том же месте почти каждый день. Поэтому, если вы объявляете переменную с областью действия на уровне процедуры, вы можете использовать ее только внутри одной процедуры. Точно так же, как я каждый день сижу на одном и том же месте на одном и том же этаже. Но позвольте мне сказать вам больше: хотя я сижу на первом этаже, я также могу занять любое место на других этажах. А на снимке ниже мы объявили переменную «myName» в верхней части модуля, используя ключевое слово Private перед запуском любой процедуры, и я использовал ее во всех трех кодах. Думайте об этом модуле как о здании, в котором есть разные этажи (Процедуры), и поскольку вы уже объявили переменную в начале модуля, вы можете использовать любую из процедур в этом модуле. Это называется областью действия на уровне частного модуля. И последнее: у моего офиса есть филиалы в разных городах по всей стране, и если я поеду туда, я могу пойти в эти офисы и использовать любое место, если захочу. Поэтому, если в вашей книге есть разные модули, вы можете использовать одну переменную во всех этих модулях, объявив ее как Public.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *