Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ein Variant-Objekt kann nur die Zuweisung von Daten akzeptieren, die einen gültigen VarType aufweisen. Dieser Fehler hat die folgenden Ursachen, und er kann wie folgt gelöst werden:
Sie haben versucht, ein Array von Zeichenfolgen mit fester Länge zu übergeben. Wenn eine einzelne Zeichenfolge mit fester Länge einem Variant-Objekt zugewiesen wird, wird sie in eine Zeichenfolge mit variabler Länge gezwungen, was jedoch für ein Array von Zeichenfolgen mit fester Länge nicht durchgeführt werden kann.
Wenn Sie das Array übergeben müssen, ordnen Sie die einzelnen Elemente des Arrays mit einer Schleife den Elementen eines temporären Arrays von Zeichenfolgen mit variabler Länge zu. Sie können dann das Array einem Variant-Objekt zuweisen und mit Erase die Zuordnung des temporären Arrays wieder zurücknehmen. Zuordnungen von Arrays mit fester Größe können jedoch mit Erase nicht zurückgenommen werden.
Sie haben versucht, eine Zeichenfolge mit fester Länge oder einen benutzerdefinierten Typ an die VarType-Funktion oder die TypeName-Funktion zu übergeben.
Ein Argument an die VarType- bzw. TypeName-Funktion muss von einem gültigen Variant-Typ sein.
Sie haben versucht, einer Variant-Variablen einen benutzerdefinierten Typ zuzuweisen. Sie können zwar einem Variant-Objekt eine ganze Variable des benutzerdefinierten Typs nicht direkt zuweisen, mit der Array-Funktion können Sie einem Variant-Objekt jedoch die einzelnen Elemente einer Variablen des benutzerdefinierten Typs zuweisen. Dadurch wird ein Variant-Objekt mit einem Array von Varianten erzeugt. Der VarType der einzelnen Elemente in diesem Variants-Array entspricht dem ursprünglichen Typ der einzelnen Elemente des benutzerdefinierten Typs.
Sie haben versucht, ein Array von Zeichenfolgen mit fester Länge oder von benutzerdefinierten Typen als Argument in einem Prozeduraufruf zu übergeben, der ein Variant-Argument erfordert. Beachten Sie, dass immer dann, wenn eine Prozedur spät gebunden ist, das heißt, wenn der Aufruf zur Laufzeit erzeugt werden muss, alle Argumente als Variant-Typ übergeben werden müssen. Dieser Fehler wird beispielsweise durch den folgenden Code verursacht:
Dim MyForm As Object ' Because MyForm is Object, binding is late. Set MyForm = New Form1 Dim StringArray(10) As String * 12 ' The next line generates the error. MyForm.MyProc StringArray
Verwenden Sie beim Zeichenfolgen-Array eine Schleife, um jede einzelne Komponente des Arrays einem temporären Array von Zeichenfolgen mit variabler Länge zuzuweisen. Sie können dann dieses Array einem Variant-Objekt zuweisen, um es der Prozedur zu übergeben. Bei einem Array benutzerdefinierter Typen können Sie mit der Array-Funktion die einzelnen Elemente einer Variablen des benutzerdefinierten Typs einem Variant-Objekt zuweisen. Dadurch wird ein Variant-Objekt mit einem Array von Varianten erzeugt. Der VarType der einzelnen Elemente in diesem Variants-Array entspricht dem ursprünglichen Typ der einzelnen Elemente des benutzerdefinierten Typs.
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.