Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Probleme mit "ArraySort" von Nepumuk

Forumthread: Probleme mit "ArraySort" von Nepumuk

Probleme mit "ArraySort" von Nepumuk
16.11.2025 10:54:20
Joschi Witchcraft
Guten Morgen, Excel-Begeisterte.

Ich nutze die Funktion "ArraySort" von Max Kaffl (Nepumuk).

Das Problem dabei: die Array-Variable muss mit () angelegt worden sein.
Grundsätzlich ist das kein Problem.

Mein Problem ist folgendes:

Ob ich die Array-Variable brauche, und in welcher Größe wird erst durch eine Routine ermittelt. Die geht davon aus, dass die Variable anfangs nur als "Variant" definiert ist.

Mit "if not isarray(x)" stelle ich fest, dass die Varable erstmals dimensioniert werden muss. Zukünftig wird ggf. ein weiteres Element zugefügt. Das alles funktioniert. Nur eines nicht:

Meine "Basis-Kenntnisse" reichen nicht aus, den Code von Nepumuk so zu anzupassen, dass die genannte Einschränkung wegfällt.

Wie kann ich feststellen, dass die Variable "X()" noch "jungfräulich" ist?

Aktuell helfe ich mir in der Weise, dass ich für "ArraySort" eine eigene und mit "()" eingerichtete Variable habe, in welche ich meine Array-Variable übertrage, sortieren lassse, und dann wieder zurückübertrage. Eine andere Lösung ist mir nicht eingefallen.

Wie kann ich das eleganter lösen?

Gruß Joschi
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Probleme mit "ArraySort" von Nepumuk
16.11.2025 11:14:14
RPP63
Moin!
"Eleganter" sollte es sein, die (mittlerweile längst nicht mehr) neuen Excel-Funktionen zu nutzen.
Vielleicht stellst Du mal ein konkretes Beispiel ein?

Gruß Ralf
AW: Probleme mit "ArraySort" von Nepumuk
16.11.2025 12:41:02
GerdL
Moin!

Schade, dass man von Max Kaffl nichts mehr liest.

Sub Unit()


Dim X() As Variant, blndim As Boolean
blndim = ((Not Not X) > 0)
MsgBox blndim

End Sub

Gruß Gerd
Anzeige
AW: Probleme mit "ArraySort" von Nepumuk
16.11.2025 14:57:10
Ulf
Hi,
aus dem Fundus
Public Function IsInitalized(ByRef x As Variant) As Boolean

IsInitalized = Not (TypeName(x) = "Empty")
End Function

hth
Ulf
AW: Probleme mit "ArraySort" von Nepumuk
17.11.2025 10:39:55
Piet
Hallo Joschi

ich weiss nicht ob es hilft, habe noch eine Variante im Angebote:
If Ubound(Arry) = 0 then 'UBound =Anzahl der Einträge

mfg Piet
Anzeige
AW: Probleme mit "ArraySort" von Nepumuk
16.11.2025 13:25:04
Joschi Witchcraft
Hallo Gerd.

Dein Code löst mein Problem.

Mein Test:

Dim SortVar() As Variant

If Not IsArray(SortVar) Then ReDim SortVar(1 To 1, 1 To 4)
If ((Not Not SortVar) = 0) Then ReDim SortVar(1 To 1, 1 To 4)

Wie beschrieben, erkennt "IsArray" eine Variabel() nicht.

Zwar verstehe ich den Code von Dir nicht. aber mit Abfrage auf "= 0" erziele ich deen gewünschten Erfolg.

Problem gelöst. Danke.
Anzeige
AW: Probleme mit "ArraySort" von Nepumuk
16.11.2025 11:23:53
Joschi Witchcraft
Hallo Ralf.

Es macht keinen Sinn, den gesamten Code als Beispiel zur Verfügung zu stellen. In meinem Thread wurde doch alles, was wichtig ist, beschrieben:

Eine Variant-Variable ARR() wird von "if not Isarray(ARR)" nicht als "jungfäuliche" Variable erkannt.

Und wenn es in Excel neue Funktionen zum Sortieren von Arrays gibt: bitte ein "Schlagwort" dazu.

Gruß Joschi
Anzeige
AW: Probleme mit "ArraySort" von Nepumuk
16.11.2025 11:54:24
Yal
Hallo Joschi,

es macht aus deiner Sicht keinen Sinn, den gesamten Code hier zu posten, dann wir müssen "blind" beraten. Ob es für dich am Ende eine Mehrwert wird...

Deine Variable ist vom Typ Variant, also kannst Du zuerst eine Dummy-Initialisierung mit Array() machen:

Dim ARR As Variant


ARR = Array()
If UBound(ARR) = -1 Then
Redim Preserve ARR(UBound(ARR)+1)
End If

Ob es mir ArraySort funktioniert, kann ich nicht sagen. Soweit ich weiß, ist ArraySort eine Methode des Objekts "ListArray", dass wiederum nur in Late Binding zu erzeugen ist. Den Code dafür werde ich nicht suchen, den Du es ja bereits hast (aber nur Du).

VG
Yal
Anzeige
AW: Probleme mit "ArraySort" von Nepumuk
16.11.2025 13:22:56
Joschi Witchcraft
Hallo Yal.

Leider hilft mir Dein Code nicht weiter.

In der Funktion won Nepumuk wird der Array-Parameter so beschrieben; "ByRef ASData() As Variant)"

Dein Code ändert aber die Variable nicht auf diesen Typ.
AW: Probleme mit "ArraySort" von Nepumuk
17.11.2025 14:44:15
Yal
Tja, so viel zum Thema "Blind beraten". Woher hätte ich wissen sollen, wie den Code von Nepumuk aussieht?

Man kann den Test in einem separaten Prozedure ablegen, um eine Error zu provozieren und diese in der Hauptprozedure auswerten zu können:

Sub Test()

Dim Arr() As Variant

Debug.Print "Stand undimensioniert: " & MeinIsArray(Arr)
ReDim Arr(0) 'Dimensionierung
Debug.Print "Stand dimensioniert: " & MeinIsArray(Arr)
End Sub

Function MeinIsArray(ByRef Arr() As Variant) As Boolean
'Default-Rückgabewert eines Boolean ist "false", bleibt als solche, wenn nicht durch Erfolg überschrieben
On Error Resume Next 'erlaubt Fehler bis Ende dieses Prozedure
MeinIsArray = IsNumeric(UBound(Arr, 1)) 'Wahr, falls Arr dimensioniert ist, Fehler sonst -> Ergo: Default-Value: False
End Function


VG
Yal
Anzeige
AW: Probleme mit "ArraySort" von Nepumuk
16.11.2025 13:15:01
Alwin Weisangler
Hallo,

unter bestimmten Voraussetzungen kann man mit If Not(Not array) sich da weiterhelfen.
Ob dies weiterhilft - keine Ahnung.

Gruß Uwe
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18