Thema Datum  Von Nutzer Rating
Antwort
Rot Eigene Implementierung von IComparer in Excel VBA nutzen
11.11.2011 16:54:58 matzeK
NotSolved
18.02.2017 16:24:06 Dieter Decaluwe
NotSolved
19.02.2017 12:04:07 Gast27464
NotSolved
19.02.2017 21:07:35 Gast55653
NotSolved
20.02.2017 16:06:46 Gast27464
NotSolved

Ansicht des Beitrags:
Von:
matzeK
Datum:
11.11.2011 16:54:58
Views:
2050
Rating: Antwort:
  Ja
Thema:
Eigene Implementierung von IComparer in Excel VBA nutzen

Hallo,

ich benötige eine komplexe Sortierfunktion für ein Array. Eigentlich schien mir hierzu die Nutzung einer Arraylist zusammen mit einer eigenen implementierung von IComparer als sinnvoll.

Folgende Beispielfunktion soll dies nutzen

 

Sub Tcompare()
Dim objArrLst As ArrayList

Dim a As BlockType

Dim cmp As MyIcomp
Set a = New BlockType
Set objArrLst = CreateObject("System.collections.Arraylist")
Set cmp = New MyIcomp

a.Context = 1
a.Group = 1
objArrLst.Count
objArrLst.Add a
Set a = New BlockType
a.Context = 2
a.Group = 1
objArrLst.Add a
objArrLst.Sort cmp

End Sub

 

MyIcomp ist so definiert:

Implements IComparer
 
Public Function IComparer_Compare(ByVal x, ByVal y) As Long
IComparer_Compare = 0

End Function

 

und BlockType so:

Option Explicit

Public Context As Integer
Public Group As Integer
Public Export As Boolean
Public ID As Integer
Public Tempate As String
Public Out As String

Immer wenn objArrLst.Sort cmp aufgerufen wird, beschwert sich VBA Object unterstützt diese Eigenschaft oder Methode nicht. Was mache ich falsch?

 

vielen Dank

Matze
 

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Eigene Implementierung von IComparer in Excel VBA nutzen
11.11.2011 16:54:58 matzeK
NotSolved
18.02.2017 16:24:06 Dieter Decaluwe
NotSolved
19.02.2017 12:04:07 Gast27464
NotSolved
19.02.2017 21:07:35 Gast55653
NotSolved
20.02.2017 16:06:46 Gast27464
NotSolved