Nichtübereinstimmung in ByRef-Argumenttyp
Ein Argument, das mit der Voreinstellung ByRef (nach Referenz) übergeben wird, muss genau dem in der Prozedur erwarteten Datentyp entsprechen. Dieser Fehler hat die folgende Ursache und Lösung:
Sie haben ein Argument eines Typs übergeben, der nicht in den erwarteten Typ umgewandelt werden konnte.
Dieser Fehler tritt beispielsweise auf, wenn Sie versuchen eine Variable vom Typ Integer zu übergeben, wenn der Typ Long erwartet wird. Wenn eine Umwandlung auf jeden Fall (auch bei Informationsverlust) stattfinden soll, können Sie das Argument in eigene Klammern einschließen.
Sie können z. B. das Variant-Argument
MyVar
an eine Prozedur übergeben, die das Integer-Argument erwartet, indem Sie den folgenden Code für den Aufruf verwenden:Dim MyVar MyVar = 3.1415 Call SomeSub((MyVar)) Sub SomeSub (MyNum As Integer) MyNum = MyNum + MyNum End Sub
Durch das Einschließen des Arguments in eigene Klammern wird die Auswertung des Arguments als Ausdruck erzwungen. Während dieser Auswertung wird der Nachkommabereich der Zahl gerundet (und nicht abgeschnitten), um dem erwarteten Argumenttyp zu entsprechen. Das Ergebnis der Auswertung wird in einem temporären Speicherbereich abgelegt, und der Prozedur wird ein Verweis auf diesen temporären Speicherbereich übergeben. Auf diese Weise behält die Originalvariable
MyVar
ihren Wert bei.Hinweis
Wenn Sie für eine Variable keinen Typ angeben, wird der Variablen der Standardtyp Variant zugewiesen. Dies ist nicht immer offensichtlich. Der folgende Code deklariert beispielsweise zwei Variablen: Die erste mit dem Namen
MyVar
ist vom Datentyp Variant, die zweite mit dem NamenAnotherVar
ist vom Datentyp Integer.Dim MyVar, AnotherVar As Integer
Weitere Informationen erhalten Sie, indem Sie das fragliche Element auswählen und F1 (unter Windows) bzw. HILFE (unter Macintosh) drücken.
Support und Feedback
Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.