Excel не видит vba функцию

Обновлено: 07.07.2024

  • поняв, что я создал файл XSLX, я преобразовал его в файл XSLM. Не получилось.
  • удалены все типы из объявления функции. Не получилось.
  • переместил функцию в модуль рабочего листа VBA. Не получилось.
  • добавил Public to the declaration. Не получилось.

это тоже не умный код:

  1. откройте редактор VBA ( Alt + F11 в Windows / Fn + Option + F11 на Mac)
  2. щелкните правой кнопкой мыши виде vbaproject
  3. выберите Вставить >> Модуль

Я столкнулся с той же проблемой, после борьбы вокруг следующего работал для меня:

моя функция была внутри модуля в книге макросов под названием Personal.Файл xlsb. Я поставил префикс имени функции с именем файла личной книги макросов и !, поэтому, если имя функции-это функция (x, y), которую я ввел в ячейку "=PERSONAL.Файл xlsb!функция (x, y). Это сработало.

пожалуйста, обратите внимание, что личное.XLSB всегда открыт в скрытом режиме для меня.

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

на вкладке разработчик в excel и рядом с кнопками run/stop в Редакторе VBA есть кнопка режима проектирования. Если он выбран и не позволяет снять его, попробуйте снова открыть книгу с включенными макросами.

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

XLSX-файл и XLSM-файлы не имеют к этому никакого отношения. Формат играет роль при сохранении файла. (В XLSX код VBA будет удален при сохранении файла).

учитывая, что я не вижу ваш код, можете ли вы попробовать, работает ли для вас функция ниже? Если это так, начните изменять функция ниже, чтобы она стала вашей функцией (например, сначала измените имя и посмотрите, работает ли она, а затем измените количество параметров и проверьте, работает ли она, а затем измените имя параметров).

Я открыл Excel, открыл редактор кода (Alt+F11), выбрал новую книгу, вставил новый модуль, набрал

затем вернулся к моей книге и в A1 набрал =Decrement (2) и нажал Enter, и это сработало. Декремент появился в раскрывающемся списке функций, когда я набрал =Decr. Было признано, и это сработало. Мне даже не пришлось спасать тетрадь.

Я знаю, что это не совсем ответ на ваш вопрос, но это рецепт мне повезло с.

Читайте также: