Если вы когда-либо программировали какие-либо макросы, вы, вероятно, знакомы с тем, как определять переменные с помощью ключевого слова Dim. Например, вы можете определить целочисленную переменную с именем MyVar следующим образом:

Dim MyVar As Integer

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

Dim x, y, z As Integer

В некоторых версиях языка BASIC это определяет и инициализирует три переменные, каждая из которых является целым числом. В VBA он также работает правильно, и никаких ошибок не возникает. Однако есть небольшая проблема — только последняя переменная (z) фактически определяется как целое число.

Вы можете увидеть, как это работает, используя следующий код:

Sub DimTest()

Dim x, y, z As Integer     Dim sTemp As String

sTemp = "x is type " & VarType(x) & vbCrLf     sTemp = sTemp & "y is type " & VarType(y) & vbCrLf     sTemp = sTemp & "z is type " & VarType(z)



MsgBox sTemp End Sub

Когда вы запускаете макрос, в окне сообщения отображается, что тип переменной для x и y равен 0, что означает, что переменная является вариантом (тип данных по умолчанию для необъявленных переменных). Только последнее окно сообщения (для z)

показывает тип переменной 2, что означает целое число.

Решение состоит в том, чтобы объявлять переменные по одной в каждой строке или использовать полный синтаксис для каждой переменной, как показано ниже:

Dim x As Integer, y As Integer, z As Integer

_Примечание: _

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

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (12427) применим к Microsoft Excel 2007, 2010, 2013 и 2016.

Вы можете найти версию этого совета для старого интерфейса меню Excel здесь: link: / excel-Declaring_Variables [Declaring Variables].