"Laufzeitfehler 5" als Funktion Mid(), links() oder rechts()


Microsoft Word 97-Version dieses Artikels finden Sie unter 181102 .

Microsoft Word 98-Version dieses Artikels finden Sie unter 181103 .

Ein Microsoft Word 2000-Version dieses Artikels finden Sie unter 201979 .

Problembeschreibung


In Microsoft Visual Basic for Applications (VBA), wenn Mid(), Right()oder Left() -Funktion verwenden erhalten Sie folgende Fehlermeldung:

Laufzeitfehler '5': "Ungültiger Prozeduraufruf oder ungültiges Argument"

Ursache


Dieses Verhalten tritt auf, wenn das Argument der Anweisung negativ ist.

Die Mid() -Funktion gibt einen Teil einer Zeichenfolge an einer angegebenen Position ab. Die Syntax des Befehls lautet

Mid(<string>, <start> [, <length>])
ist < String > Textzeichenfolge suchen < Start > ist die Position, ab und < Length > ist die Anzahl der zurückzugebenden Zeichen. Wenn kein Argument < Length > angegeben ist oder weniger als < Length > Zeichen im Text sind, gibt die Funktion die Zeichen < Start > Position am Ende der Zeichenfolge.

Problemlösung


Stellt Microsoft Programmierbeispiele zur Veranschaulichung, ohne ausdrücklich oder konkludent. Dies beinhaltet, ist jedoch nicht beschränkt auf, konkludente Gewährleistungen der Tauglichkeit oder Eignung für einen bestimmten Zweck. Dieser Artikel setzt voraus, dass Sie mit der von Beispielen verwendeten Programmiersprache und den Tools, die zum Erstellen und Debuggen von Prozeduren verwendet werden, vertraut sind. Microsoft-Supportmitarbeiter können bei der Erläuterung der Funktionalität bestimmter Prozeduren helfen, sie werden jedoch diese Beispiele nicht verändern um eine erweiterte Funktionalität aufzuzeigen oder Prozeduren entwickeln, die Ihren Anforderungen entsprechen. Für Weitere Informationen klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:

290140 wie Ausführen des Beispielcodes für die Office XP-Programme in Knowledge Base-Artikeln

Zum Beheben dieses Problems müssen Sie die Länge der Zeichenfolge, wie im folgenden Beispiel testen:

Sub ErrorDoesNotOccur()
Dim Test As String
Dim ReturnText As String

' Empty string, could be passed as an empty dialog
' variable, for example.
Test = ""

' Test the length of the string to ensure
' that subtracting 1 from the length leaves
' at least 1 character.
If Len(Test) - 1 > 0 then
ReturnText = Mid(Test, Len(Test) - 1)
End If

End Sub