#excel #vba
#excel #vba
Вопрос:
У меня проблема, когда я пытаюсь использовать переменную, созданную в подпрограмме, в другой подпрограмме. В следующем примере я создаю переменные Power_Origine, Power_Destination, … в подразделе0, я могу использовать одну из них в подразделе1, но я не могу использовать более 1 переменной в одной подпрограмме (часть 2).
Sub part0()
Power_Origine = 1
Description_Origine = 2
KnownUser_Origine = 3
Power_Destination = 1
Description_Destination = 2
KnownUser_Destination = 3
part1 (Power_Destination)
part2 (Power_Origine, Power_Destination, Description_Destination, KnownUser_Destination)
'part2 Power_Origine, Power_Destination, Description_Destination, KnownUser_Destination ' This does not work either
End Sub
Sub part1(Power_Destination As Integer)
MsgBox Power_Destination
End Sub
Sub part2(Power_Origine As Integer, Power_Destination As Integer, Description_Destination As Integer, KnownUser_Destination As Integer)
MsgBox "Hello " amp; Power_Destination amp; Description_Destination
End Sub
Как я могу вызвать эти 4 переменные (Power_Origine, Power_Destination, Description_Destination, KnownUser_Destination) в части 2 подпрограммы?
Спасибо.
Ответ №1:
но я не могу использовать более 1 переменной в одной подпрограмме (часть 2)
Вы можете. Просто удалите (
и )
. Так что это становится
part2 Power_Origine, Power_Destination, Description_Destination, KnownUser_Destination
или использовать
Call part2(Power_Origine, Power_Destination, Description_Destination, KnownUser_Destination)
Это то же самое, что и выше. Вы все равно можете получить сообщение об ошибке, потому что вы объявили Power_Origine As Integer, Power_Destination As Integer, Description_Destination As Integer, KnownUser_Destination As Integer
in part02
, но part0
они есть Variants
. Объявите их как Integer
in part0
, и это сработает 🙂
Sub part0()
Dim Power_Origine As Integer
Dim Description_Origine As Integer
Dim KnownUser_Origine As Integer
Dim Power_Destination As Integer
Dim Description_Destination As Integer
Dim KnownUser_Destination As Integer
Power_Origine = 1
Description_Origine = 2
KnownUser_Origine = 3
Power_Destination = 1
Description_Destination = 2
KnownUser_Destination = 3
part1 Power_Destination
part2 Power_Origine, Power_Destination, Description_Destination, KnownUser_Destination
End Sub
Sub part1(Power_Destination As Integer)
MsgBox Power_Destination
End Sub
Sub part2(P_Orig As Integer, P_Dest As Integer, D_Dest As Integer, K_Dest As Integer)
MsgBox "Hello " amp; P_Dest amp; D_Dest
End Sub
Вы также можете прочитать о передаче переменных по ссылке и по значению
Комментарии:
1. Это именно то, что я искал! Спасибо!