VBA сабвуфер с входами - PullRequest
       5

VBA сабвуфер с входами

0 голосов
/ 26 сентября 2018

Как мне передать параметры в подпункт?Когда я запускаю макрос, саб просто запускается без запроса ввода.

Sub do_something(input as integer)
    xxxxxx
end sub

Я знаю, что могу использовать сабвуфер в другом суб / функции, где я могу дать ему вход.Как и в следующем примере,

sub caller_function()
    call do_something(1)
end sub

Есть ли другой способ использовать do_something?Заранее спасибо!

Ответы [ 3 ]

0 голосов
/ 26 сентября 2018

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

Он не компилируется, потому что Input - зарезервированное слово, используемое для чтения данных из файлового объекта.Вы не можете использовать его как имя переменной.(Я предположил, что «xxxxx» указывает, куда должен идти код, то есть 'Do something here.)

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

Sub do_something(i As Integer)
    MsgBox i
End Sub

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

Sub do_something(Optional i As Integer)
    MsgBox i
End Sub

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

Option Explicit

Public i As Integer

Sub do_something()
    MsgBox i
End Sub

Относительно Input: https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/inputstatement

0 голосов
/ 26 сентября 2018

Настройте ваш саб примерно следующим образом:

Sub do_something(param As Integer)
    MsgBox "The parameter passed to this Sub is " & param
End Sub

Чтобы вызвать его:

do_something 1

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

Sub do_something(param1 As Integer, param2 As String)
    MsgBox "The parameters passed to this Sub is " & param1 & " and " & param2
End Sub

Чтобы назвать это:

do_something 4,"Hello"

Или для небольшого или читающего хаоса:

do_something param2:="Hello", param1:=4
0 голосов
/ 26 сентября 2018

С одним аргументом, вы не используете скобки

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