Hi,
es geht da um eine typischen Anfängerfehler.
Ich hab den Code leicht umgeschrieben, er hat aber immer noch die 100%ig gleiche Bedeutung wie deiner.
Option Explicit
Private Sub BTN_Click() 'auslösendes Event
Dim para1 As Variant
Dim para2 As Integer
para1 = 1
para2 = 2
'weiterer Code
Call MeineUntersub(CInt(para1), para2)
'weiterer Code
End Sub
Sub MeineUntersub(para1 As Integer, para2 As Integer)
'Code der para1 und para2 auswertet
'diese Sub soll nichts an die obere Sub übergeben
End Sub
Dir dürfte das
Dim para1 As Variant
Dim para2 As Integer
aufgefallen sein. Dies ist die "normale" Schreibweise zu
Dim para1, para2 As Integer
Als Anfänger glaub man der Datentyp Integer wird auch für para1 gelten - tut er aber nicht!
Korrekt wäre:
Dim para1 As Integer, para2 As Integer
oder
Dim para1%, para2% 'das Typenkennzeichen für Integer ist das %-Zeichen
Ich kann davon allerdings nur abraten. Einem Anfänger würde ich dazu raten die Deklaration zeilenweise und voll ausgeschrieben anzugeben.
PS: VB6/VBA kann zwar viele Datentypen ineinander automatisch umwandeln (casten), aber darauf würde ich micht nicht verlassen, schon gar nicht fest davon ausgehen das dabei alles richtig "geschieht".
|