Программа VBA не «отображается» в макросах View - PullRequest
0 голосов
/ 06 февраля 2020

Я пытаюсь изучить основы VBA кодирования. Я дословно скопировал этот кодовый код из курса Excel, кроме изменения налоговой ставки:

Option Explicit

Public Function NettoGross(Net As Double)
Dim TaxRate As Double
    TaxRate = 0.01
    NettoGross = Net * (1 + TaxRate)
End Function

И все же, когда я go перехожу в Excel и просматриваю макросы, его нигде не найти. Пожалуйста помоги. Спасибо.

Ответы [ 2 ]

2 голосов
/ 06 февраля 2020

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

Например ... go для ячейки A1 и введите = NettoGross (1) .

1 голос
/ 06 февраля 2020
Ключевое слово

Public определяет область действия подпрограмм Function и Sub. В диалоговом окне «Макросы» отображаются только подпрограммы Sub, у которых либо Public, либо префикс определения области действия отсутствует Применение Private делает его невидимым в диалоге макросов.

В частности, если есть аргументы, передаваемые Public Sub, это также делает его невидимым. Например, Public Sub CalculateGross(Net as Double) не будет отображаться в диалоговом окне макросов.

Если вы намереваетесь использовать Public Function (также называемый пользовательской функцией или UDF), тогда его можно вызвать как функцию листа, если он вставлен. в модуле, а не в любом модуле Worksheet или ThisWorkbook. Вы можете написать его в виде формулы, например,

=NettoGross(A1)

, где ячейка A1 содержит net значение для передачи.

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