ich suche den Namen des Verweises um CreateObject("System.Collections.Arraylist")
zu nutzen.
Gruß Flo
Sub Test()
Dim c As Object
Set c = CreateObject("System.Collections.ArrayList")
End Sub
führt aber zu einem Automatisierngsfehler.


Function Sorttext(strText As String, Optional SortOrder As Byte = 2) As String
On Error GoTo Laufzeitfehler
Dim objArrayList As Object
Dim vntArr As Variant
Dim L As Long
If SortOrder > 1 Then
Set objArrayList = CreateObject("System.Collections.Arraylist")
vntArr = Split(strText, ", ")
With objArrayList
For L = LBound(vntArr) To UBound(vntArr)
.Add (vntArr(L))
Next
.Sort
If SortOrder = 2 Then
Sorttext = Join(.ToArray, ", ")
Else
.Reverse
Sorttext = Join(.ToArray, ", ")
End If
End With
Else
Sorttext = strText
End If
On Error GoTo 0
Exit Function
Laufzeitfehler:
'Fehlerbehandlung
'Call Fehlermeldung("Sorttext(strText As String, Optional sortOrderUp As Boolean = True) As _
String")
End Function
GrußCreateObject("System.Collections.Arraylist")
VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.
Verweise überprüfen: Gehe zu Extras > Verweise.
Verweis setzen: Scrolle durch die Liste und suche nach mscorlib.dll. Setze das Häkchen. Dieser Schritt ist wichtig, um den Fehler mit CreateObject("System.Collections.Arraylist") zu vermeiden.
Code eingeben: Verwende den folgenden Code, um eine Instanz der ArrayList zu erstellen:
Sub Test()
Dim c As Object
Set c = CreateObject("System.Collections.ArrayList")
End Sub
Testen: Führe den Code aus, um sicherzustellen, dass alles korrekt funktioniert.
mscorlib.dll nicht gesetzt ist. Überprüfe die Verweise in Deinem VBA-Editor.CreateObject("System.Collections.Arraylist") nicht funktioniert, stelle sicher, dass der Verweis auf mscorlib.dll gesetzt ist.Falls Du die Verwendung von CreateObject("System.Collections.Arraylist") vermeiden möchtest, kannst Du auch eine einfache VBA-Array-Lösung verwenden:
Function Sorttext(strText As String, Optional SortOrder As Byte = 2) As String
Dim arr() As String
arr = Split(strText, ", ")
' Sortieren des Arrays hier implementieren
' Verwende eine Schleife, um die Liste zu sortieren
Sorttext = Join(arr, ", ")
End Function
Diese Methode sortiert die Liste ohne die ArrayList und kann in allen Excel-Versionen problemlos funktionieren.
Ein praktisches Beispiel zur Verwendung der ArrayList in VBA:
Function Sorttext(strText As String, Optional SortOrder As Byte = 2) As String
Dim objArrayList As Object
Dim vntArr As Variant
Dim L As Long
If SortOrder > 1 Then
Set objArrayList = CreateObject("System.Collections.Arraylist")
vntArr = Split(strText, ", ")
With objArrayList
For L = LBound(vntArr) To UBound(vntArr)
.Add (vntArr(L))
Next
.Sort
If SortOrder = 2 Then
Sorttext = Join(.ToArray, ", ")
Else
.Reverse
Sorttext = Join(.ToArray, ", ")
End If
End With
Else
Sorttext = strText
End If
End Function
In diesem Beispiel wird eine Liste von Texten sortiert, die durch Kommas getrennt sind.
With-Anweisungen: Diese verbessern die Lesbarkeit und Effizienz Deines Codes.1. Warum funktioniert CreateObject("System.Collections.Arraylist") nicht in Excel 2013?
Es kann an fehlenden Verweisen oder Inkompatibilitäten mit der Version liegen. Stelle sicher, dass mscorlib.dll korrekt referenziert ist.
2. Was ist der Unterschied zwischen ArrayList und einem normalen VBA-Array?
ArrayList bietet erweiterte Funktionen wie Sortierung und dynamische Größenanpassung, während ein normales VBA-Array statisch ist und nur eine feste Größe hat.
3. Wie kann ich die ArrayList in Excel 2010 verwenden?
Die Verwendung ist ähnlich; stelle sicher, dass Du die richtigen Verweise setzt und den Code entsprechend anpasst.