Parameter für UDF als variablen Typ deklarieren
14.02.2012 19:28:09
NoNet
Hallo Dirk,
wenn der Übergabe-Parameter an eine UDF variablen Typs sein soll, dann lasse die Typendeklaration weg (siehe Test4()) oder deklariere ihn in der UDF als ByVal var... (siehe Test3()) :
Sub VariablenTests()
'Tests für unterschiedliche Variablentypen (VARIANT, STRING)
'als Parameter für FUNCTION Test1 bis Test3
'14.02.2012, NoNet - www.excelei.de
Dim varX As Variant, strX As String
varX = "VAR-Text"
strX = "STRING-Text"
'MsgBox test1(varX) 'Fehler, da Test1 einen STRING erwartet
MsgBox Test1(CStr(varX)), , 1 'VARIANT-Variable in STRING umgewandelt
MsgBox Test2(varX), , 2 'funktioniert !
MsgBox Test3(varX), , 3 'funktioniert auch, da ByVal
MsgBox Test4(varX), , 4 'funktioniert da kein TYP angegeben wurde
MsgBox Test1(strX), , 1 'funktioniert !
MsgBox Test2(strX), , 2 'funktioniert !
MsgBox Test3(strX), , 3 'funktioniert !
MsgBox Test4(strX), , 4 'funktioniert !
End Sub
Function Test1(var As String)
Test1 = var
End Function
Function Test2(var As Variant)
Test2 = var
End Function
Function Test3(ByVal var As String)
Test3 = var
End Function
Function Test4(var)
Test4 = var
End Function
Gruß, NoNet