Как использовать функцию Excel в редакторе VBA - PullRequest
2 голосов
/ 03 февраля 2010

Я хочу написать функцию Excel, подобную этой.Это расширение функции Dec2Bin

Public Function Dec2BinEx(x As Long)
  Dec2BinEx = dec2bin(x) + 10
End Function

Но при попытке ее использовать я получаю сообщение об ошибке.Как вызвать функцию Excel в редакторе Visual Basic

Ответы [ 2 ]

6 голосов
/ 03 февраля 2010

В общем случае вы вызываете функции Excel с помощью Application.WorksheetFunction.SomeFunctionName. Тем не менее, Dec2Bin является особенным, так как это функция надстройки, а не чисто функция Excel. Следовательно, Application.WorksheetFunction здесь не работает. Вместо этого вы должны сделать функции надстройки доступными для вашего кода. Для этого выполните следующие действия

  • В Excel, меню Инструменты / Надстройки, сделать убедитесь, что надстройка Analysis ToolPak - VBA импортирована.

  • Затем установите ссылку на эту надстройку. в вашем коде: в редакторе VBA, меню Инструменты / Ссылки, добавить ссылку на atpvbaen.xls.

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

0 голосов
/ 03 февраля 2010

Прежде всего, вам нужно создать модуль, например, из меню выбрать Вставить-> Модуль . Затем внутри этого модуля создайте функцию с именем main . Эта функция запускается по умолчанию при запуске кода. Теперь внутри этой функции вызовите свою собственную функцию, например:

Sub main()
    Call Dec2BinEx(your_value_here)
End Sub

Public Function Dec2BinEx(x As Long)
    Dec2BinEx = dec2bin(x) + 10
End Function

Сделав это, убедитесь, что у вас есть ссылка на функцию dec2bin или если вы ее тоже создаете. Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...