Freigeben über


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 Namen AnotherVar 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.