Excel как посмотреть переменные

Excel для Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Excel 2007 Excel Starter 2010 Еще…Меньше

Диалоговое окно «Диспетчер имен» используется для работы со всеми определенными именами и именами таблиц в книге. Например, может потребоваться найти имена с ошибками, подтвердить значение и ссылку на имя, просмотреть или изменить описательные комментарии или определить область. Вы также можете отсортировать и отфильтровать список имен, а также легко добавлять, изменять или удалять имена из одного расположения.

Чтобы открыть диалоговое окно Диспетчер имен, на вкладке Формулы в группе Определенные имена нажмите кнопку Диспетчер имен.

Диалоговое окно "Диспетчер имен"

В диалоговом окне Диспетчер имен отображаются следующие сведения о каждом имени в списке.

Имя столбца

Описание

Имя

Одно из следующих значений:

  • определенное имя, которое обозначается значком определенного имени; Значок определенного имени

  • имя таблицы, которое обозначается значком имени таблицы. Значок имени таблицы

    Примечание: Имя таблицы — это имя таблицы Excel, которая представляет собой коллекцию данных об определенной теме, хранящихся в записях (строках) и полях (столбцах). Excel создает имя таблицы Excel таблицы table1, Table2 и т. д. при каждой вставке Excel таблицы. Вы можете изменить имя таблицы, чтобы сделать ее более понятной. Дополнительные сведения о Excel таблицах см. в статье «Использование структурированных ссылок с Excel таблицами».

Значение

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

  • «это моя строковая константа»

  • 3,1459

  • {2003;12,2002;23,;2001,18}

  • #ССЫЛКА!

  • {…}

Диапазон

Текущая ссылка для имени. Вот типичные примеры.

  • =Лист1!$A$3

  • =8,3

  • =HR!$A$1:$Z$345

  • =СУММ(Лист1!A1,Лист2!B2)

Область

  • имя листа, если область действия — локальный уровень листа;

  • «Книга», если областью является глобальный уровень книги. Этот вариант применяется по умолчанию.

Примечание

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

  • Срок действия этого значения истекает 2 мая 2007 г.

  • Не удалять! Критическое имя!

  • Основано на числах экзамена на сертификацию ISO.

Объект ссылки:

Ссылка на выбранное имя.

Диапазон имени можно быстро изменить, изменив сведения в поле «Ссылки «. После внесения изменений можно нажать кнопку » Кнопка ВВОД сохранить изменения», или Кнопка «Отмена» отменить изменения.

Примечания: 

  • При изменении содержимого ячейки нельзя использовать диалоговое окно диспетчера имен.

  • В диалоговом окне диспетчера имен не отображаются имена, определенные в Visual Basic для приложений (VBA) или скрытые имена (свойство Visible имени имеет значение False).

  1. На вкладке Формулы в группе Определенные имена выберите команду Присвоить имя.

  2. В диалоговом окне «Новое имя» введите имя, которое вы хотите использовать для ссылки.

    Примечание: Длина имени не может превышать 255 знаков.

  3. Область автоматически по умолчанию используется для книги. Чтобы изменить область имени, в раскрывающемся списке «Область» выберите имя листа.

  4. Также в поле Примечание можно ввести описание длиной до 255 знаков.

  5. В поле Диапазон выполните одно из указанных ниже действий.

    • Нажмите кнопку «Свернуть Изображение кнопки» (при этом диалоговое окно временно сжимается), выделите ячейки на листе и нажмите кнопку » Развернуть диалоговое окно» Изображение кнопки.

    • Чтобы указать константу, введите = (знак равенства), а затем значение константы.

    • Чтобы указать формулу, введите =, а затем формулу.
       

      Советы: 

      • Будьте внимательны при использовании абсолютных или относительных ссылок в формуле. Если создать ссылку, щелкнув ячейку, на которую вы хотите ссылаться, Excel создать абсолютную ссылку, например «Sheet1!$B$1». Если ввести ссылку, например «B1», это относительная ссылка. Если при выборе имени активной ячейкой является A1, то ссылка на «B1» действительно означает «ячейка в следующем столбце». Если вы используете определенное имя в формуле в ячейке, ссылка будет на ячейку в следующем столбце относительно места ввода формулы. Например, если ввести формулу в C10, ссылка будет иметь значение D10, а не B1.

      • Дополнительные сведения: переключение между относительным, абсолютным и смешанным ссылками

  6. Чтобы закончить и вернуться на лист, нажмите кнопку ОК.

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

При изменении определенного имени или имени таблицы все его использование в книге также изменяется.

  1. На вкладке Формулы в группе Определенные имена выберите пункт Диспетчер имен.

  2. В диалоговом окне диспетчера имен дважды щелкните имя, которое вы хотите изменить, или выберите имя, которое вы хотите изменить, а затем нажмите кнопку «Изменить».

  3. В диалоговом окне Изменение имени введите новое имя для ссылки в поле Имя.

  4. Измените ссылку в поле Диапазон и нажмите кнопку ОК.

  5. В диалоговом окне Диспетчер имен в поле Диапазон измените ячейку, формулу или константу, представленную этим именем.

  1. На вкладке Формулы в группе Определенные имена выберите пункт Диспетчер имен.

  2. В диалоговом окне Диспетчер имен щелкните имя, которое нужно изменить.

  3. Выделите одно или несколько имен одним из способов, указанных ниже.

    • Для выделения имени щелкните его.

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

    • Чтобы выбрать несколько имен в несмежной группе, нажмите клавишу CTRL и нажмите кнопку мыши для каждого имени в группе.

  4. Нажмите кнопку Удалить.

  5. Нажмите кнопку ОК, чтобы подтвердить удаление.

Используйте команды раскрывающегося списка Фильтр для быстрого отображения подмножества имен. Выбор каждой команды включает или отключает операцию фильтра, что упрощает объединение или удаление различных операций фильтра для получения нужных результатов.

Можно выполнить фильтрацию из следующих параметров:

Параметр

Действие

Имена на листе

Отобразить только локальные имена листа.

Имена в книге

Отобразить только глобальные имена в книге.

Имена с ошибками

Отображение только имен со значениями, содержащими ошибки (например, #REF, #VALUE или #NAME).

Имена без ошибок

Отобразить только те имена, в значениях которых нет ошибок.

Определенные имена

Отобразить только те имена, которые определены пользователем или Excel, такое как имя области печати.

Имена таблиц

Отобразить только имена таблиц.

  • Чтобы отсортировать список имен в порядке возрастания или убывания, щелкните заголовок столбца.

  • Чтобы автоматически изменить размер столбца в соответствии с самым длинным значением в этом столбце, дважды щелкните правую часть заголовка столбца.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

См. также

Почему в Excel появляется диалоговое окно «Конфликт имен»?

Создание именованного диапазона в Excel

Вставка именованного диапазона в формулу в Excel

Определение и использование имен в формулах

Нужна дополнительная помощь?

Содержание

  1. Использование Диспетчера имен в Excel
  2. Использование переменных в под процедурах Excel в Visual Basic для приложений
  3. Введение
  4. Дополнительные сведения
  5. Переменные в под процедуре
  6. Объявление переменной в макросе
  7. Сводка по типам данных
  8. тип данных Variant
  9. Область действия переменной
  10. Область на уровне процедуры
  11. Объем личных и общедоступных модулей
  12. Срок жизни переменной
  13. Инициализация значения переменной
  14. Переменные уровня процедуры
  15. Статическое ключевое слово
  16. Сброс проектов для сброса переменных

Использование Диспетчера имен в Excel

Диалоговое окно «Диспетчер имен» используется для работы со всеми определенными именами и именами таблиц в книге. Например, может потребоваться найти имена с ошибками, подтвердить значение и ссылку на имя, просмотреть или изменить описательные комментарии или определить область. Вы также можете отсортировать и отфильтровать список имен, а также легко добавлять, изменять или удалять имена из одного расположения.

Чтобы открыть диалоговое окно Диспетчер имен, на вкладке Формулы в группе Определенные имена нажмите кнопку Диспетчер имен.

В диалоговом окне Диспетчер имен отображаются следующие сведения о каждом имени в списке.

Одно из следующих значений:

определенное имя, которое обозначается значком определенного имени;

имя таблицы, которое обозначается значком имени таблицы.

Примечание: Имя таблицы — это имя таблицы Excel, которая представляет собой коллекцию данных об определенной теме, хранящихся в записях (строках) и полях (столбцах). Excel создает имя таблицы Excel таблицы table1, Table2 и т. д. при каждой вставке Excel таблицы. Вы можете изменить имя таблицы, чтобы сделать ее более понятной. Дополнительные сведения о Excel таблицах см. в статье «Использование структурированных ссылок с Excel таблицами».

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

«это моя строковая константа»

Текущая ссылка для имени. Вот типичные примеры.

имя листа, если область действия — локальный уровень листа;

«Книга», если областью является глобальный уровень книги. Этот вариант применяется по умолчанию.

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

Срок действия этого значения истекает 2 мая 2007 г.

Не удалять! Критическое имя!

Основано на числах экзамена на сертификацию ISO.

Ссылка на выбранное имя.

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

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

В диалоговом окне диспетчера имен не отображаются имена, определенные в Visual Basic для приложений (VBA) или скрытые имена (свойство Visible имени имеет значение False).

На вкладке Формулы в группе Определенные имена выберите команду Присвоить имя.

В диалоговом окне «Новое имя» введите имя, которое вы хотите использовать для ссылки.

Примечание: Длина имени не может превышать 255 знаков.

Область автоматически по умолчанию используется для книги. Чтобы изменить область имени, в раскрывающемся списке «Область» выберите имя листа.

Также в поле Примечание можно ввести описание длиной до 255 знаков.

В поле Диапазон выполните одно из указанных ниже действий.

Нажмите кнопку «Свернуть » (при этом диалоговое окно временно сжимается), выделите ячейки на листе и нажмите кнопку » Развернуть диалоговое окно» .

Чтобы указать константу, введите = (знак равенства), а затем значение константы.

Чтобы указать формулу, введите =, а затем формулу.

Будьте внимательны при использовании абсолютных или относительных ссылок в формуле. Если создать ссылку, щелкнув ячейку, на которую вы хотите ссылаться, Excel создать абсолютную ссылку, например «Sheet1!$B$1». Если ввести ссылку, например «B1», это относительная ссылка. Если при выборе имени активной ячейкой является A1, то ссылка на «B1» действительно означает «ячейка в следующем столбце». Если вы используете определенное имя в формуле в ячейке, ссылка будет на ячейку в следующем столбце относительно места ввода формулы. Например, если ввести формулу в C10, ссылка будет иметь значение D10, а не B1.

Чтобы закончить и вернуться на лист, нажмите кнопку ОК.

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

Источник

Использование переменных в под процедурах Excel в Visual Basic для приложений

Введение

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

Дополнительные сведения

Переменные в под процедуре

Мощной функцией языков программирования является возможность хранить данные в переменной, чтобы содержимое переменной можно было использовать или менять позже. В этом документе обсуждается следующее использование переменных в Visual Basic:

Как объявляются переменные.

Процедуры и проекты, которые могут использовать переменную.

Время жизни переменной.

Объявление переменной в макросе

Самый простой способ объявить переменную в макросах — использовать отчет Dim. В следующей строке две переменные объявлялись как integers(integers).

Dim x As Integer, y As Integer

Если для переменных x и y заданы целые числа, вы указываете Visual Basic выделить достаточно памяти для переменной целого числа (по 2 на x и y) и что данные, хранимые в x или y, являются целым числом в период между -32768 и 32767.

ПРИМЕЧАНИЕ: Если вы объявляете несколько переменных с помощью одной выписки Dim, необходимо указать тип данных для каждой переменной.

Если не указать тип данных для каждой переменной, как в следующем коде Visual Basic, то переменная y будет настроена как переменная с типом данных типа integer. Переменная x будет иметь тип типа variant:

Dim x, y As Integer

Дополнительные сведения см. в приведенной ниже таблице Variant.

Чтобы выполнить проверку переменной, выполните следующие действия:

Сохраните и закроите все открытые книги, а затем откройте новую книгу.

Запустите редактор Visual Basic (нажмите ALT+F11).

В меню Вставка выберите пункт Модуль.

Введите следующий код:

Sub Variable_Test()
Dim x As Integer, y As Integer
x = 10
y = 100
MsgBox «значение x — » & x & _
Chr(13) & «значение y — » & y
End Sub

Запустите Variable_Test макрос. Вы получаете следующее сообщение: the value of x is 10

the value of y is 100

Нажмите кнопку ОК.

В макро Variable_Test изменить следующую строку:

Запустите Variable_Test макрос.

Вы получите ошибку во время запуска, так как «ошибка» не является integer, и вы пытаетесь назначить это строковую величину для переменной x.

Сводка по типам данных

Это распространенные типы данных переменных:

тип данных Variant

Если не указать тип данных при объявлении переменной или вообще не объявлять переменную, Visual Basic автоматически определяет тип данных переменной типа переменной. Ниже следующую информацию о преимуществах переменных, объявленных в качестве этого типа данных:

Переменные могут содержать строку, дату, время, boolean или числовую величину.

Переменные могут автоматически преобразовывать содержащиеся в них значения.

Недостатком является то, что для переменных требуется не менее 16байт памяти. 16 bytes of memory can be significant in large procedures or in complex modules.

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

Измените код макроса Variable_Test на:

Запустите Variable_Test макрос.

Вы не получите сообщение об ошибке, так как вы можете назначить что-либо переменным x и y.

ПРИМЕЧАНИЕ: Вы также можете не использовать следующую строку, и макрос будет по-прежнему работать, так как переменные x и y будут рассматриваться как типы данных Variant:

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

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

Область на уровне процедуры

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

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

Вставка нового модуля в проект.

Введите в этот модуль оба макроса:
Sub Macro1() Dim x As Integer x = 10 MsgBox «x, as seen by Macro1 is » & x ‘next line runs Macro2 Macro2 End Sub Macro2() MsgBox «x, as seen by Macro2 is » & x End Sub

Запустите Макрос1, и вы получите следующее сообщение:

x, as seen by Macro1 is 10

Нажмите кнопкуОК, и вы получите следующее сообщение:

x, as seen by Macro2 is

Нажмите кнопку ОК.

Макрос2 не отображает значение переменной x, так как переменная x является локальной для параметра Macro1.

Объем личных и общедоступных модулей

Вы можете определить переменные в разделе объявлений модуля (в верхней части модуля, над всеми под процедурами) и настроить область действия переменной с помощью открытой выписки, затемной или закрытой выписки. Если перед переменной поместить открытое заявление, переменная будет доступна всем макросам во всех модулях проекта. Если перед переменной поместить перед переменной утверждение Dim или Private, переменная будет доступна только макросам в модуле, в котором она объявлена.

Чтобы увидеть разницу между общедоступным заявлением и заявлением Dim, выполните следующие действия:

Сохраните и закроите все открытые книги, а затем откройте новую книгу.

Запустите редактор Visual Basic редактора.

Вставка модуля в проект.

Вставка другого модуля в проект.

Введите следующий код в этот модуль:

Sub Macro2() x = x * 3
MsgBox x
End Sub

Запустите Macro_1a макрос в первом модуле.

С переменной x, объявленной как «Public x As Integer», все три макроса в проекте имеют доступ к значению x. В первом окне сообщения отображается значение 10. Во втором поле сообщения отображается значение 20 (поскольку x умножается на 2 в Macro_1b). В третьем окне сообщения отображается значение 60 (поскольку значение x было изменено на 20 в Macro_1b а затем умножено на 3 в Макросе2).

Измените строку объявления в первом модуле из:

Public x As Integer

Dim x As Integer

Запустите Macro_1a макрос.

Если переменная x объявлена как «Dim x As Integer», только макрос в первом модуле имеет доступ к значению x. В первом поле сообщения отображается значение 10, во втором — 20 (поскольку x умножается на 2 в Macro_1b), а в третьем — значение 0 (так как в Макросе2 не отображается значение x, а в макросе 2 используется неинициализированное значение нуля).

Измените строку объявления в первом модуле из:

Dim x As Integer

Private x As Integer

Запустите Macro_1a макрос.

Те же поля сообщений отображаются с использованием области Private statement, как при использовании statement Dim. Переменная x имеет ту же область действия, что и модуль, где она объявлена.

ПРИМЕЧАНИЕ: Если вы хотите ограничить область действия переменной модулем, в котором она объявлена, используйте privatestatement вместо dim. Оба этих эффекта будут одинаковыми, но при использовании закрытой выписки область действия будет более четкой.

Срок жизни переменной

Время, в течение которого переменная сохраняет значение, называется сроком жизни. Значение переменной может изменяться в течение ее жизненного времени, но при этом сохраняется значение. Кроме того, если переменная теряет область действия, она теряет значение.

Инициализация значения переменной

При запуске макроса все переменные инициализируются со значением. Числовая переменная инициализирована до нуля, строка переменной длины — в нулевую строку («»), а строка фиксированной длины заполняется кодом ASCII 0. Переменные Variant инициализируются как пустые. Пустая переменная представлена нулем в числовом контексте и пустой строкой («») в строковом контексте.

Переменные уровня процедуры

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

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

Вставка нового модуля в проект.

В этом модуле введите оба макроса:

Sub Macro1()
‘set x as a procedure level variable
Dim x As Integer
MsgBox «инициализированное значение x — » & x
x = 10
MsgBox «x is » & x
‘следующая строка запускает Макрос2
Макрос2
MsgBox «x is still » & x
End Sub
Sub Macro2()
MsgBox «x, as seen by Macro2 is » & x
End Sub

Вы получаете следующее сообщение:

the initialized value of x is 0

Нажмите кнопкуОК, и вы получите сообщение:

Нажмите кнопкуОК, и вы получите следующее сообщение:

x, as seen by Macro2 is

Нажмите кнопку ОК.

Макрос2 не отображает значение переменной x, так как переменная x является локальной для параметра Macro1. Вы получите следующее сообщение:

Нажмите кнопку ОК.

Вы получаете те же сообщения, что и в шагах 3–6, так как как макрос1 перестал работать на шаге 6, значение переменной x было потеряно. Таким образом, при повторном повторе макроса 1 в шаге 7 в первом сообщении будет показано значение x в качестве нуля (инициализированное значение).

Статическое ключевое слово

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

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

Вы получите сообщение: the initialized value of x is 0

Нажмите кнопкуОК, и вы получите сообщение:

Нажмите кнопку ОК.

Запустите Макрос1, и вы получите следующее

сообщение: the initialized value of x is 10

Нажмите кнопкуОК, и вы получите следующее сообщение:

Нажмите кнопку ОК.

Значения, которые отображаются в сообщениях, во второй раз отличаются, так как переменная x объявляется как статическая переменная, а значение переменной сохраняется после первого запуска макроса Macro1.

ПРИМЕЧАНИЕ: Если у вас есть переменная уровня модуля, ее время существования будет таким же, как если бы она была статической переменной на уровне процедуры.

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

Запустите Макрос1, и вы получите следующее сообщение:

the initialized value of x is 0

Нажмите кнопку ОК, и вы получите следующее сообщение:

Нажмите кнопку ОК,

Запустите Макрос1, и вы получите сообщение:

the initialized value of x is 10

Нажмите кнопку ОК.

Вы получаете следующее сообщение:

Нажмите кнопку ОК.

Значения, которые отображаются в сообщениях, во второй раз отличаются, так как переменная x объявлена как статическая переменная и сохраняет значение после первого запуска макроса Macro1.

Сброс проектов для сброса переменных

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

Если вы сделаете это для проекта Macro1, а затем повторно запроизводили макрос1,значение переменной x инициализировано до нуля, и вы получите первое сообщение:

Источник

 

SkyShark

Пользователь

Сообщений: 71
Регистрация: 18.01.2013

#1

01.03.2013 13:21:07

Добрый День!

Искал и по этому форуму и в гугле, но ни чего к сожалению не нашел :(
Вопрос такой, есть скажем в модуле объявленные переменные допустим:

Код
Public WsR as Worksheet
Public i as Integer, j as Long, s as String

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

Все что смог сделать, это получить имена переменых в текстовом виде.
А вот как обратиться к переменной зная ее текстовое имя или как получить список всех переменных виде самих же переменных, или как очистить/удалить из памяти эту переменную зная ее имя, вот с этим разобраться не могу.
Помогите, пожалуйста! … кто чем может :)

пример моего кода:

Код
Public WsPD As Worksheet
Public Folder2 As Folder
Public NedStart As Date, NedFin As Date
Public z As Byte, FVS As Byte, RN As Byte
Public MagArr()

Sub test()

'Получаем список всех модулей, форм, листов и т.д. в данной книге
For Each iVBcomponent In ThisWorkbook.VBProject.VBComponents
    'Проверяем являеться ли модулем или формой
    If iVBcomponent.Type = 1 Or iVBcomponent.Type = 3 Then
        'Построчно просматриваем часть модуля с объявленными переменными
        For i = 1 To iVBcomponent.CodeModule.CountOfDeclarationLines
            'Разделям по ","
            x = Split(iVBcomponent.CodeModule.Lines(i, 1), ",")
            'просматриваем получившиеся части
            For j = 0 To UBound(x)
                'Разделям по " " и выбираем переменную
                x1 = Split(x(j), " ")(1)

'**********************************************************************
'Выделенная часть на данный момент не имеет смысла, так как x1 всегда будет string содержащий имя переменной

                Debug.Print x1, TypeName(x1)
                'определяем тип переменной
                Select Case VarLife(x1)
                    Case 1
                        Set x1 = Nothing
                    Case 2
                        Erase x1
                    Case 3
                        x1 = ""
                End Select
'*********************************************************************
            Next j
        Next i
    End If
Next

End Sub

Function VarLife(curVariables As Variant) As Byte
    If IsObject(curVariables) Then VarLife = 1: Exit Function
    If IsArray(curVariables) Then VarLife = 2: Exit Function
    VarLife = 3
End Function

 

R Dmitry

Пользователь

Сообщений: 3103
Регистрация: 22.12.2012

Excel,MSSQL,Oracle,Qlik

#2

01.03.2013 22:51:10

можно так

Спасибо

 

SkyShark

Пользователь

Сообщений: 71
Регистрация: 18.01.2013

Спасибо за ответ!

На сколько смог понять, Вы предлагаете изначально все переменные создавать как элементы словаря, правильно? В любом случае идея интересная и точно пригодится, но не в данном случае.

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

Может что то из WinAPI? … Хотя на сколько я понял обратиться к переменной напрямую в память по имени нельзя…

Изменено: SkyShark01.03.2013 23:49:33

 

Казанский

Пользователь

Сообщений: 8839
Регистрация: 11.01.2013

#4

01.03.2013 23:18:36

Цитата
SkyShark пишет:
К примеру требуется перед завершением выполнения кода получить список всех переменных и очистить их

А зачем это нужно? После завершения процедуры все ее переменные уничтожаются, память освобождается. Исключение составляют переменные, объявленные как Static, они на самом деле хранятся в модуле и «живут» вместе с переменными уровня модуля, пока модуль загружен в память.
Массивы можно очистить оператором Erase.

Изменено: Казанский01.03.2013 23:19:15

 

SkyShark

Пользователь

Сообщений: 71
Регистрация: 18.01.2013

Может не совсем корректно выразился. Код не завершается, а идет ожидание действий пользователя при этом все переменные продолжают существовать и как результат занимают память. Конечно можно не обращать внимания скажем на переменные byte, long, Boolean и т. д. при текущих гигобайтных объемах памяти, но все таки это не совсем правильно.

Плюс ко всем, чем не вариант проверки всех переменных и скажем в случае обнаружения в памяти: 4-х объектов, 5-ти целых и 8-и строковых переменных объявленных и не очищенных в результате работы кода, завершить программу или выдать сообщение.

 

R Dmitry

Пользователь

Сообщений: 3103
Регистрация: 22.12.2012

Excel,MSSQL,Oracle,Qlik

#6

02.03.2013 00:16:03

Цитата
SkyShark пишет:
Код не завершается, а идет ожидание действий пользователя при этом все переменные продолжают существовать и как результат занимают память

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

Спасибо

 

SkyShark

Пользователь

Сообщений: 71
Регистрация: 18.01.2013

Я тоже знаю, или стараюсь знать и понимать, но дело ни в этом.

Моих знаний просто не хватает что бы решить эту задачу, и даже не знаю в каком направлении искать решение. Можете считать это навязчивой идеей, но хочется все таки найти способ реализации :)

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

А в чём сверхзадача — у Вас недостаточно физической памяти?

 

SkyShark

Пользователь

Сообщений: 71
Регистрация: 18.01.2013

Памяти хватает, хотя железо встречается разное и бывает удивляет своей «новизной» ;)

Интересен сам принцип подобного обращения к переменным зная только имя переменной, которое хранится ввиде текстовой строки.

 

nerv

Пользователь

Сообщений: 3071
Регистрация: 22.12.2012

#10

13.03.2013 12:11:21

Цитата
SkyShark пишет:
а идет ожидание действий пользователя при этом все переменные продолжают существовать и как результат занимают память

экономия на спичках

Цитата
SkyShark пишет:
Интересен сам принцип подобного обращения к переменным зная только имя переменной, которое хранится ввиде текстовой строки
Цитата
R Dmitry пишет:

Код
Public Dict As Object
Sub LoadVar()
Set Dict = CreateObject("scripting.dictionary")
With Dict
.Add "testA", "String"
.Add "testB", 1
.Add "testC", Array(1, 2, 3)
End With
End Sub
Sub tst()
Debug.Print Dict("testA")
Debug.Print Dict("testB")
Debug.Print Join(Dict("testC"), ",")
Set Dict = Nothing
test
On Error Resume Next
Debug.Print Dict("testA")
Debug.Print Dict("testB")
Debug.Print Join(Dict("testC"), "==")
End Sub

Изменено: nerv13.03.2013 12:12:42

Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина — самый громкий звук
https://github.com/nervgh

Диспетчер имен в Excel применяется для присвоения символьных имён ячейкам или диапазонам ячеек, а также для редактирования созданных имён. Присвоенные имена можно считать обычными переменными, которые допускается использовать внутри различных выражений Excel.

Смотрите видео после статьи

видео может дополнять статью или содержать её полностью

Основное назначение Диспетчера имён в Excel заключается в присвоении символьных имён отдельным ячейкам или диапазонам ячеек. В определённых случаях это может быть весьма удобно, поскольку позволяет в дальнейшем использовать выбранные имена в различных формулах.

Как открыть диспетчер имен в Excel, чтобы посмотреть как он выглядит? В верхнем меню выберите раздел «Формулы» и нажмите кнопку «Диспетчер имён» (кнопка обычно находится примерно посередине панели, но вообще это зависит от размера экрана и того, менялись ли стандартные настройки панелей Excel).

Сам Диспетчер имён представляет собой всплывающее окно, которое показано на скриншоте ниже. На рисунке показан Диспетчер имен в Excel 2010 версии программы, но в целом его вид практически не различается от версии к версии (к примеру, Диспетчер имен в Excel 2016 практически такой же).

Диспетчер имён в Excel

[нажмите на картинку для увеличения]

Справка: как сохранять фото с сайтов

Далее рассмотрено как задавать имена и использовать их в собственных формулах.

Как использовать Диспетчер имён в Excel

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

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

Фактически можно считать, что Excel позволяет создавать переменные вида «x=10», при этом слева будет имя переменной, а справа — её значение.

Как задать имя и изменить его

Откройте Диспетчер имён и нажмите кнопку «Создать…». При этом откроется маленькое окошко, которое Вы можете видеть на скриншоте выше. Для каждой переменной требуется обязательно указать:

  • Имя (с учётом ограничений, налагаемых на имена переменных в Excel);
  • Область видимости (поле «Область»);
  • Значение переменной (параметр «Диапазон»);

Также можно указать необязательный комментарий в качестве пояснения. Обычно это поле оставляют просто пустым.

Ограничения для имён

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

Правила задания имён переменных следующие:

  • Допустимые символы
    Первым символом имени должна быть буква, знак подчеркивания (_) или обратная косая черта (). Остальные символы имени могут быть буквами, цифрами, точками и знаками подчеркивания. В качестве определенного имени нельзя использовать буквы «C», «c», «R» и «r», поскольку эти буквы используются как сокращенное имя строки и столбца выбранной в данный момент ячейки при их вводе в поле Имя или Перейти.
  • Имена в виде ссылок на ячейки запрещены
    Имена не могут быть такими же, как ссылки на ячейки, например, Z$100 или R1C1.
  • Пробелы не допускаются
    Использовать в имени пробелы нельзя. В качестве разделителей слов можно использовать символ подчеркивания (_) и точку (.), как в примерах «Налог_с_Продаж» и «Первый.Квартал».
  • Имя может содержать до 255-ти символов
  • Учет регистра
    Имя может состоять из строчных и прописных букв. Excel не различает строчные и прописные буквы в именах. Например, если создать имя «Продажи» и затем создавать имя «ПРОДАЖИ», Excel предложит выбрать уникальное имя.

Например, мы можем создать переменную с именем «ЧислоПИ». Это правильное имя.

Использование переменных

Имена переменных можно использовать вместо адресов ячеек или диапазонов в формулах. Ставить имя переменной в кавычки или как-то ещё специально обозначать не требуется — Excel самостоятельно определит, что указанное имя является переменной, если на данном листе эта переменная имеет значение в соответствие с её областью видимости.

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

Что ещё можно сказать о переменных в Excel

Обратите внимание, что имена при помощи Диспетчера можно присваивать не только обычным ячейкам, но и объединённым. В этом случае объединённая ячейка считается за одну, как и принято в Excel.

Напомним, что в Excel адресом объединённой ячейки является верхняя левая ячейка диапазона, объединением которого и была получена ячейка.

При выделении ячейки или диапазона, для которых задано имя, в левом верхнем углу таблицы вместо адреса ячейки появляется заданное имя.

Задавайте ячейкам имена в тех случаях, когда предполагается использовать это имя более одного раза. Иначе особого смысла в использовании имён нет.

Примеры заданных переменных и их использование

После статьи Вы можете скачать файл Эксель, в котором приводится простой пример задания имени диапазону ячеек, а также использование имени в формулах. Также некоторые подобные примеры Вы можете найти в прикреплённых файлах к другим статьям по Excel на нашем сайте.

Для комплексного изучения программы Вы можете воспользоваться нашим специальным учебным видеокурсом по Excel, с учебной программой и примерами видео-уроков из которого можно познакомиться по указанной ссылке.

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

Уникальная метка публикации: 81C56558-1893-74EA-1F15-5D622844A6CB
Источник: //artemvm.info/information/uchebnye-stati/microsoft-office/dispetcher-imen-v-excel/

Вы можете просмотреть любой прикреплённый документ в виде PDF файла. Все документы открываются во всплывающем окне, поэтому для закрытия документа пожалуйста не используйте кнопку «Назад» браузера.

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

Knowing how to use Excel’s variables gives you the ability to make your formulas – and by extension the spreadsheets containing those formulas – much easier to understand. For example, the formula “=A1B1 + C2” is cryptic, while “SlopeX + Y_Intercept” is recognizable as the equation of a line. Excel documentation refers to variables as “Names,” so when you want to create and manage Excel variables, you use the commands in the Defined Name group, such as “Name Manager.”

  1. Create a new workbook and type the below values in any column of your spreadsheet; all values must be entered in the same column:

    d e f g

  2. Type any number in the cell directly to the right of the “d” cell. This number is the value that the variable “d” will take on. Type any number you want for the next three cells directly below the preceding cell.

  3. Move your mouse over the cell that contains the “d,” then press and hold the left mouse button. Drag down and right until your mouse is over the last number you typed; then release the mouse to select the two columns you typed.

  4. Click the “Formulas” tab. Click the “Create from Selection” command in the Defined Names group. Excel displays a dialog with options for specifying which group of cells contains text from which you’d like to make variables.

  5. Click the “Left column” option to specify the first column into which you typed as the range holding the variable names.

  6. Click any empty cell in the current spreadsheet and enter the formula below into the cell. This formula uses the variables you created with the “Create from Selection” command. After you enter the formula, Excel displays its result—the sum of the numbers you entered in the column to the right of the variable names.

    = d + e + f + g

  7. Click the “Name Manager” button on the Formulas tab. This displays the Name Manager dialog box, which lets you create and edit Excel variables.

  8. Click the “d” variable from the dialog’s list of variables, then click the “Delete” button and close the dialog. Observe that the formula you typed now displays “#NAME?”, which indicates an error in the formula. Your deletion of the “d” variable caused the error.

  9. Click the “Name Manager” button again, then click the dialog’s “New” button to indicate that you want to make a new variable. Type “d” in the Name control of the New Name dialog, then click in the “Refers to” control. Click the cell directly to the right of the cell containing the “d” to specify the cell that the new variable represents. Close all dialogs and notice that the formula cell no longer shows the “#NAME” error; it contains the sum of all the numbers in the right column as it originally did.

Понравилась статья? Поделить с друзьями:
  • Excel как помогает работе
  • Excel как пользоваться для чайника
  • Excel как помечать ячейки
  • Excel как пользоваться впр в excel примеры
  • Excel как пометить ячейку