Как указать переменную в excel

VBA Excel. Правильные имена переменных и процедур

Правила наименования переменных, констант, процедур и аргументов пользовательских функций в VBA Excel. Использование суффиксов в именах переменных.

Правильные имена в VBA Excel

Правила наименования переменных, констант, процедур и аргументов:

  • Имя может состоять из букв, цифр и знака подчеркивания (_). Пробел и другие специальные символы не допускаются, кроме шести символов-суффиксов для переменных.
  • Первым знаком имени должна быть буква. Длина имени ограничена 255 знаками.
  • Не следует использовать имена, совпадающие с именами встроенных функций, операторов, методов, свойств и констант VBA Excel.
  • Нельзя допускать повторения имен внутри одной области видимости (действия) переменных, например, внутри одной процедуры.

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

Примеры имен

Переменные: x, y, z, a1, a2, a3, summa, myRange, my_Currency ;

Подпрограммы: Primer1(), Raschet_Stazha(), SozdaniyeTablitsy() ;

Функции с аргументом: СуммаПрописью(x As Double) As String, ПоследнийДеньМесяца(x As Date) As Date .

Области видимости переменных

Переменная Область действия Способ объявления
Локальная отдельная процедура внутри процедуры с помощью ключевого слова Dim или Static
Модульная отдельный модуль перед первой процедурой в модуле с помощью ключевого слова Dim или Private
Глобальная все модули перед первой процедурой в модуле с помощью ключевого слова Public

Суффиксы в именах переменных

Переменные в VBA Excel могут быть объявлены с одним из следующих типов данных: Byte, Boolean, Integer, Long, Single, Double, Currency, Date, String (для строк переменной или фиксированной длины), Object или Variant. Если при объявлении переменной тип данных не указан, по умолчанию присваивается тип Variant.

Шесть типов данных имеют соответствующие им символы, которые можно использовать при объявлении переменных, добавляя их в конце имени как суффиксы. Переменная будет объявлена с соответствующим символу типом данных.

Символы, назначенные типам данных:

  • % – Integer;
  • & – Long;
  • ! – Single;
  • # – Double;
  • @ – Currency;
  • $ – String.

Примеры объявления переменных

Пример 1

Объявление переменных с указанием типа данных с помощью ключевых слов и суффиксов:

Существуют ли такие вещи, как переменные в Формуле Excel?

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

=IF (VLOOKUP(A1, B:B, 1, 0) > 10, VLOOKUP(A1, B:B, 1, 0) — 10, VLOOKUP(A1, B: B, 1, 0) )

[выше приведен простой пример проблемы, а не конкретная формула, с которой я работаю.]

8 ответов

вы можете определить имя для части VLOOKUP формулы.

  1. выделить ячейку, содержащую эту формулу
  2. в меню Вставка выберите пункт имя и нажмите кнопку Определить
  3. введите имя переменной (например, ‘Value’)
  4. в поле ссылается на введите формулу VLOOKUP: =VLOOKUP(A1,B:B, 1, 0)
  5. Нажмите кнопку Добавить и закройте диалоговое окно
  6. в вашей оригинальной формуле замените части VLOOKUP именем, которое вы просто определено: =IF( Value > 10, Value — 10, Value )

Шаг (1) важен здесь: я думаю, во второй строке вы хотите использовать Excel VLOOKUP(A2,B:B, 1, 0) третья строка VLOOKUP(A3,B:B, 1, 0) , etc. Шаг (4) достигает этого, используя относительные ссылки ( A1 и B:B ), а не абсолютные ссылки ( $A и $B:$B ).

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

не связанные с переменными, ваш пример также будет решен с помощью MOD :

  • VLOOKUP функция в собственной ячейке: =VLOOKUP(A1, B:B, 1, 0) (В С1), то формула ссылается С1: =IF( C1 > 10, C1 — 10, C1 )
  • создать UDF:

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

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

да. Но не напрямую.

  • вы можете опубликовать Vlookup () в одной ячейке и использовать его адрес там, где это необходимо. — Это, пожалуй, единственный прямой способ использования переменных в Excel.
  • вы можете определить Vlookup (reference)-10 как функцию-оболочку из макросов VBE. Нажмите Alt+f12 и используйте эту функцию

Я знаю, что это немного не по теме, но следуя решению, представленному Йонасом Бемером, на самом деле я думаю, что MOD-лучшее решение для вашего примера.

Если вы намеревались ограничить результат одной цифрой, MOD-лучший подход для его достижения.

ie. Предположим, что VLOOKUP (A1, B:B, 1, 0) возвращает 23. Ваша формула IF просто сделает этот расчет: 23-10 и вернет 13 в результате.

с другой стороны, MOD (VLOOKUP(A1, B: B, 1, 0), 10) разделит 23 на 10 и покажет остаток: 3.

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

Ссылка на основную публикацию